走进ADO.NET的世界

ADO.NET通过封装一些对象来实现C#与数据库的连接,其实就是一个桥梁。

创新互联公司-专业网站定制、快速模板网站建设、高性价比晋中网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式晋中网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖晋中地区。费用合理售后完善,十年实体公司更值得信赖。

下面先通过SQL Server来看ADO.NET是怎么样具体连接数据库的。

首先看一下在Visual Studio中创建数据库(Visual Studio内置一个数据库服务器)

在视图上打开服务器资源管理器,在Visual Studio左边会看到

右键数据库连接,创建数据库

其中的“.”代表本地服务器,新创建的数据名字PersonDB,创建一个人Persons表,三个字段ID整形自动增长为主键,一个PersonName,nvarchar(15),存储人的姓名,PersonAge整形存储人的年纪。好了表创建好了,接下来就看看怎样把它同程序进行连接,来实现数据库的增删改查。

创建一个windowForm程序,界面如下:

我们先来实现添加操作,首先引用命名空间:using System.Data.SqlClient;

首先先来连接数据库,通过SqlConnection创建连接对象。

  
 
 
 
  1. SqlConnection con = new SqlConnection();//创建连接对象

要想连接数据库,首先要知道你是要连接哪一个服务器,数据库名称等等。

  
 
 
 
  1. con.ConnectionString = "server=.;database=persondb;uid=sa;pwd=sa";
  2. //分别表示服务器名称、数据库名称、登录用户名及密码

接下来创建sql命令对象:

  
 
 
 
  1. SqlCommand cmd = con.CreateCommand();//sql命令对象,表示要对sql数据库执行一个sql语句
  2. cmd.CommandText = "insert into persons(personname,personage) values(@name,@age)";
  3. //sql语句@name,@age表示两个参数
  4. cmd.Parameters.Add("@name", SqlDbType.NVarChar).Value = textBox1.Text;
  5. //给参数赋值,并指定类型
  6. cmd.Parameters.Add("@age", SqlDbType.Int).Value = textBox2.Text;
  7. con.Open();//打开连接
  8. cmd.ExecuteNonQuery();
  9. //执行不是查询的sql语句
  10. MessageBox.Show("插入成功!");

打开数据库连接一定要记得关闭连接:

  
 
 
 
  1. catch (Exception ex)//由于sql语句对半全角很敏感,捕捉异常
  2. {
  3. MessageBox.Show(ex.Message);
  4. }
  5. finally
  6. {
  7. con.Close();//不管打开成功还是失败,都能关闭连接
  8. }

好了,到这一步插入操作做完了,接下来看一下能不能往表中插入数据。

点击添加,我们去Persons表中看一下有没有成功插入数据

我们看到“张三”被成功添加进去了,我们再来多添加几条数据。

接下来看一下查询操作怎么做,其实和插入操作没多大区别,只是多了一个SqlDataReader读者对象:下面来看一下源代码:

  
 
 
 
  1. try
  2. {
  3. con.ConnectionString = "server=.;database=persondb;uid=sa;pwd=sa";
  4. //分别表示服务器名称、数据库名称、登录用户名及密码
  5. SqlCommand cmd = con.CreateCommand();
  6. cmd.CommandText = "select id,personname,personage from persons";
  7. //查询所有
  8. con.Open();
  9. SqlDataReader dr = cmd.ExecuteReader();//提供一种从 SQL Server 数据库读取行的只进流的方式
  10. listBox1.Items.Clear();//清除listbox数据
  11. comboBox1.Items.Clear();//清除combox数据
  12. while (dr.Read())//一行一行读取数据,返回值是bool类型
  13. {
  14. listBox1.Items.Add("姓名:"+dr.GetValue(1).ToString() + " 年龄:"+dr.GetValue(2).ToString());
  15. comboBox1.Items.Add(dr.GetValue(0));//把ID放到combox中,方便删除及修改
  16. }
  17. dr.Close();//关闭读取流操作
  18. }
  19. catch (Exception ex)
  20. {
  21. MessageBox.Show(ex.Message);
  22. }
  23. finally
  24. {
  25. con.Close();
  26. }

来看一下查询结果:

接下来在来实现删除操作,和插入几乎一样,先从数据库中查询出所有数据,获得它们的ID(都放到combox里面了)

下面看一下具体实现:

  
 
 
 
  1. try
  2. {
  3. con.ConnectionString = "server=.;database=persondb;uid=sa;pwd=sa";
  4. SqlCommand cmd = con.CreateCommand();
  5. con.Open();
  6. cmd.CommandText = "delete persons where id=@id";//删除语句,已ID为条件删除
  7. cmd.Parameters.Add("@id", SqlDbType.Int).Value =comboBox1.Text;
  8. cmd.ExecuteNonQuery();
  9. }
  10. catch (Exception ex)
  11. {
  12. MessageBox.Show(ex.Message);
  13. }
  14. finally
  15. {
  16. con.Close();
  17. }

先查询,

选择删除ID,

点击删除,再来查询一下

我们看到朱重八被删除了。

最后来做修改,这个比较麻烦,首先要修获得要修改的数据,先获得所有数据,在通过ID来实现查询当个数据,然后在确定修改

看修改查询代码:

  
 
 
 
  1. try
  2. {
  3. con.ConnectionString = "server=.;database=persondb;uid=sa;pwd=sa";
  4. SqlCommand cmd = con.CreateCommand();
  5. cmd.CommandText = "select personname,personage from persons where id=@id";
  6. cmd.Parameters.Add("@id",SqlDbType.Int).Value = comboBox1.Text;
  7. con.Open();
  8. SqlDataReader dr = cmd.ExecuteReader();
  9. dr.Read();//因为只读一条数据,就不用while循环
  10. textBox1.Text = dr.GetValue(0).ToString();
  11. textBox2.Text = dr.GetValue(1).ToString();
  12. dr.Close();
  13. }
  14. catch (Exception ex)
  15. {
  16. MessageBox.Show(ex.Message);
  17. }
  18. finally
  19. {
  20. con.Close();
  21. }

再来看一下确定修改代码:

  
 
 
 
  1. try
  2. {
  3. con.ConnectionString = "server=.;database=persondb;uid=sa;pwd=sa";
  4. SqlCommand cmd = con.CreateCommand();
  5. con.Open();
  6. cmd.CommandText = "update persons set personname=@name,personage=@age where id=@id";
  7. cmd.Parameters.Add("@id", SqlDbType.Int).Value = comboBox1.Text;
  8. cmd.Parameters.Add("@name",SqlDbType.NVarChar).Value=textBox1.Text;
  9. cmd.Parameters.Add("@age", SqlDbType.NVarChar).Value = textBox2.Text;
  10. cmd.ExecuteNonQuery();
  11. }
  12. catch (Exception ex)
  13. {
  14. MessageBox.Show(ex.Message);
  15. }
  16. finally
  17. {
  18. con.Close();
  19. }

好了,我们先查询全部信息,在通过ID获得修改信息

把名字改成,七匹马,确定修改,再来查询一下是否修改成功

现在可以看到修改成功了。

到这里,基础性的东西都讲完了,还有SqlDataAdapter,DataTable类,下次在讲。

链接:http://www.cnblogs.com/wjfluisfigo/archive/2010/05/23/1742034.html

责任编辑:彭凡
来源: 博客园 ADO.NET

分享名称:走进ADO.NET的世界
URL网址:http://www.csdahua.cn/qtweb/news36/224436.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网