您好,欢迎来到测品娱乐。
搜索
您的当前位置:首页C#如何连接数据库?

C#如何连接数据库?

来源:测品娱乐
C#如何连接数据库实现查询功能?首先要求是进行驱动连接,连接好数据库后,就只剩下对数据库的访问了。查询可以参考一般数据库的查询。

数据库操作四大步骤

1、查询:select * from 表名(where 条件)

2、插入:insert into 表明(字段1,字段2„„)values(值1,值2„„) 3、修改:update 表名 set 字段1=值1,字段2=值2 (where 条件) 4、删除:delete from 表名 (where条件)

在.NET中,对数据库的访问有两种方式:oledb和sqlclient。两种连接数据库方式的不同之处是:oledb适合访问各种各样的数据库,而sqlclient只适用于sql server数据库,就访问速度而言这两种连接方式自然是sqlclient连接方式速度比较快,而相对也能够用范围来讲则是oledb连接方式较好。下面capucivar将使用oledb连接方式来对数据库进行访问。

在连接数据库之前需要导两个包:System.Date和System.Date.Oledb。连接数据库就要创建一个连接对象OleDbConnection conn = new OleDbConnection();,然后就要写连接数据库的字符串了:conn.ConnectionString=\"provider=sqloledb.1;data

source=.;initial catalog=dbname;user id=username;pwd=password\";连接字符串一共有五部分:1、指明驱动2、指明数据源,即数据库所在的地址3、指定连接那个数据库4、用户名5、密码。接下来就该打开这个连接了:conn.open()。这样就连接好了数据库,剩下的就是对数据库进行访问了。首先来做一个查询,既然是查询,先不管怎么查询,我们知道查询出来的数据一定是个结果集,那么dot-net中的结果集是什么呢?常用的有这样两个:dataTable和dataSet。

从表面看这两个分别是数据的表和数据的集合。两者的区别是:dataTable就是一个放在内存中存放数据的表,查询出来后若要将结果显示在某个控件上,只需指定数据源为dataTable的对象;而dateSet是表的集合,也就是说dataSet中可以放n个dataTable,查询时可以同时返回两个dataTable,在指定数据源时就要指定是dataSet中的哪个dataTable。比如有一个dataSet对象ds,那么指定数据源时就要这样写:ds.Tables[index]。查询结束之后就要及时关闭连接:conn.close()。

下面就来做一个登陆界面来熟悉对数据库的查询操作:

C#如何连接数据库?首先创建数据库capucivar和表users,并在表中添加一行数据:

1. 2. 3. 4. 5. 6. 7. 8.

create database capucivar create table users (

uid int primary key identity(1,1), username varchar(100), userpass varchar(100) )

insert into users(username,userpass) values('aaa','aaa')

新建一个解决方案,然后在解决方案里添加项目。因为是与用户交互的图形界面,所以操作与以前有所不同,这次就要选择windows 应用程序。

在界面的左边是wingdows窗体的控件,如果需要那个控件只需要将它拖放至右边的窗体上即可,最好将控件的name属性也改一下。界面做好之后,如果那个控件需要有一个监听事件,鼠标右击属性,右下角就会出现控件的属性和事件,选中相应的事件后双击直接进入代码编写相应代码就可以了。

我们拖放两个Lable(标签),两个TextBox(单行文本框)和一个button(按钮),做好一个简单的登陆界面。注意:对于密码框不应该明文显示,应该以“*”或其它的代替,所以要将它的属性passwordchar改为“*”。

下面写数据库的连接即查询,因为数据库操作是经常要进行的,所以一般习惯将对数据库的连接和操作单独作一个项目:

1. 2. 3. 4. 5. 6. 7. 8. 9.

using System;

using System.Collections.Generic; using System.Text;

using System.Data;// System.Data和System.Data.OleDb一定要导入

using System.Data.OleDb; namespace Db //命名空间 {

public class ConnDb {

10. OleDbConnection conn = null;//定义连接对象为null 11. public ConnDb()//构造函数 12. {

13. if (conn==null) 14. {

15. conn = new OleDbConnection();

16. conn.ConnectionString=\"provider=sqloledb.1;data source=.;i

nitial catalog=capucivar;user id=sa;pwd=\"; 17. }

18. if (conn.State == ConnectionState.Closed) 19. {//如果连接的状态是关闭的话 20. conn.Open();//打开连接 21. } 22. }

23. public DataSet query(string sql) 24. {

25. DataSet ds = new DataSet();//创建dataSet对象

26. OleDbDataAdapter da = new OleDbDataAdapter(sql,conn);//适配

器,用于填充dataSet或dataTable

27. da.Fill(ds);//使用Fill()方法填充dataSet 28. connClose();//关闭连接 29. return ds;//返回DataSet 30. }

31. public void connClose()//关闭连接的方法 32. {//先判断连接是否关闭,如果没有关闭就将它关闭 33. if (conn.State == ConnectionState.Open) 34. {

35. conn.Close();//关闭连接 36. } } } }

在已经做好的图形用户界面,选中一个控件,鼠标右击属性。右下角找到按钮的点击事件后双击该事件(此处只需要双击按钮)直接进入代码编写相应响应事件代码。完整代码如下:

1. 2. 3. 4. 5. 6. 7. 8.

using System;

using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text;

using System.Windows.Forms; namespace login//命名控件

9. {

10. public partial class Form1 : Form 11. {

12. public Form1() 13. {

14. InitializeComponent(); 15. }

16. private void login_but_Click(object sender, EventArgs e)//

按钮的单击事件 17. {

18. //得到用户输入的用户名和密码

19. string name = this.name_text.Text; 20. string pass = this.pass_text.Text; 21. //写sql语句

22. string sql =string.Format(\"select * from users where usern

ame='{0}' and userpass='{1}'\23. DataSet ds = new Db.ConnDb().query(sql); 24. if (ds.Tables[0].Rows.Count > 0)

25. {// ds.Tables[0].Rows.Count是结果集的行数 26. MessageBox.Show(\"登陆成功!\"); 27. } 28. else 29. {

30. MessageBox.Show(\"登录失败!\"); 31. } } } }

Ctrl+F5执行,先输入正确的“aaa”和“aaa”,执行结果如下: 然后填入一个错误的,执行结果如下:

一个简单的从数据库中查询就做好了。至于增删改capucivar将在下一篇文章中详细阐述。

浅析C#如何连接数据库实现查询功能就介绍到这里。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- cepb.cn 版权所有 湘ICP备2022005869号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务