• 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()+"	"+reader[1].ToString() + "	" + 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()+"	"+item[1].ToString()+"	"+item[2].ToString());
    15             }
    16         }

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

    连接查询:

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

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

    断开式查询:

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

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

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

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

  • 相关阅读:
    Kotlin入门学习笔记
    bower安装使用入门详情
    Bower => 前端开发也有包管理器
    Bower : ENOGIT git is not installed or not in the PATH
    webstorm配置nodejs,bower,git,github
    VS2012远程调试(winform+web 远程调试)
    在使用Redis的客户端连接工具ServiceStack.Redis要注意的问题
    android 反编译 逆向工具整理
    android 插件化开发 开源项目列表
    未在本地计算机上注册"Microsoft.Jet.OLEDB.4.0"解决方案
  • 原文地址:https://www.cnblogs.com/pang951189/p/7450114.html
Copyright © 2020-2023  润新知