C# ADO.NET动态数据的增删改查(第五天)

一、插入登录框中用户输入的动态数据

 1 /// <summary>
 2         /// 添加数据
 3         /// </summary>
 4         /// <param name="sender"></param>
 5         /// <param name="e"></param>
 6         private void btnConnectDB_Click(object sender, EventArgs e)
 7         {
 8             //得到文本框的值
 9             string classname = this.textClassName.Text;
10             string byname = this.textByName.Text;
11             //连接数据库
12             string connectString = "server=.;database=StudentMISDB;uid=sa;pwd=123456";
13             //创建数据库命令
14             SqlConnection conn = new SqlConnection(connectString);
15             //打开数据库
16             conn.Open();
17             //插入数据
18             string sql = string.Format("insert into Course values('{0}','{1}')",classname,byname);
19             //进行连接
20             SqlCommand cmd = new SqlCommand(sql,conn);           
21             int count = cmd.ExecuteNonQuery();
22             conn.Close();
23             if(count>0){
24                 MessageBox.Show("插入成功");
25             }
26             else
27             {
28                 MessageBox.Show("插入失败");
29             }
30             //conn.Close();
31         }

二、修改数据库中的数据

 1  /// <summary>
 2         /// 修改数据
 3         /// </summary>
 4         /// <param name="sender"></param>
 5         /// <param name="e"></param>
 6         private void btnUpDateDB_Click(object sender, EventArgs e)
 7         {
 8             //获取输入框文本值
 9             string className = this.textClassName.Text;
10             string byName = this.textByName.Text;
11             //创建数据库连接字符
12             string connectstring = "server=.;database=StudentMISDB;uid=sa;pwd=123456";
13             //创建数据库连接对象
14             SqlConnection con = new SqlConnection(connectstring);
15             //打开数据库
16             con.Open();
17             //创建数据库要执行的代码
18             string sql = string.Format("update Course set Name='{0}',ByName='{1}' where CourseId=2",className,byName);
19             //创建数据库命令的对象
20             SqlCommand cmd=new SqlCommand(sql,con);
21             int count = cmd.ExecuteNonQuery();//返回影响的行数
22             //关闭数据库
23             con.Close();
24             //MessageBox.Show("好了");
25             if (count > 0)
26             {
27                 MessageBox.Show("修改成功");
28             }
29             else
30             {
31                 MessageBox.Show("修改失败");
32             }
33         }

三、连接式查询数据库数据,并在listbox中展示出来

 1  private void btnChaXun_Click(object sender, EventArgs e)
 2         {
 3             //创建数据库链接字符串
 4             string connstring = "server=.;database=StudentMISDB;uid=sa;pwd=123456";
 5             //链接数据库
 6             SqlConnection conn = new SqlConnection(connstring);
 7             conn.Open();
 8             //数据库要执行的语句
 9             string sql = "select * from Course where CourseID>3";
10             //要执行的命令
11             SqlCommand cmd = new SqlCommand(sql,conn);
12             //读取数据
13             SqlDataReader reader = cmd.ExecuteReader(); //读取数据
14             //循环读取
15             while (reader.Read())  //表示前进到下一行记录,返回值为布尔类型,如果下一条有数据,返回true,没有数据,就返回false
16             {
17                 //将读取到的数据添加到listbox中显示
18                 this.listBoxChaxun.Items.Add(reader[0].ToString()+"\t"+reader[1].ToString() + "\t" + reader[2].ToString()); //分别读取第一列、第二列、第三列
19             }
20             //关闭读取
21             reader.Close();
22             //关闭数据库
23             conn.Close();
24         }

四、断开式查询数据

 1        private void btnDKcheck_Click(object sender, EventArgs e)
 2         {
 3             string connString = "server=.;database=StudentMISDB;uid=sa;pwd=123456";  //创建数据库连接字符串
 4             SqlConnection conn = new SqlConnection(connString);  //创建连接对象
 5             string sql = "select * from Course";  //数据库要执行的操作
 6             //创建断开式连接对象
 7             SqlDataAdapter adapter = new SqlDataAdapter(sql,conn);
 8             //创建数据集对象
 9             DataSet ds = new DataSet();
10             //填充数据集
11             adapter.Fill(ds);
12             foreach (DataRow item in ds.Tables[0].Rows)  //遍历输出值
13             {
14                 listBoxChaxun.Items.Add(item[0].ToString()+"\t"+item[1].ToString()+"\t"+item[2].ToString());
15             }
16         }

 五、链接式查询和断开式查询方法的区别和总结

连接查询:

        1.一直访问数据库,直到数据被读取完成才会终止;

        2.执行效率非常高,从上到下依次读取,但是在之前读取过的数据,不能重新读取。

断开式查询:

        1.通过SqlDataAdapter 把数据库中的数据,映射到 DataSet 中,但是对内存开支太大,执行效率也比较低;

        2.比较灵活,可以根据不同的条件,对DataSet中的数据进行再次筛选;

        3.对数据库中连接池中的资源的释放比较及时;

        4.当 需要查询海量的数据时,必须要经过优化。【优化的方法:分页、存储过程分页】

 

posted @ 2017-08-29 21:19  青红造了个白  阅读(594)  评论(0编辑  收藏  举报