zoukankan      html  css  js  c++  java
  • DataCommand和DataAdapter

    SqlDataReader 高效,功能弱,只读访问
    SqlDataAdapter 强大,要求资源也大一点

    SqlDataReader 只能在保持跟数据库连接的状态下才可以读取。。。

    SqlDataAdapter 大多情况下是一次性读取一个表,然后填充到DataSet中,然后就可以断开跟数据库的连接了。

    因为DataSet是离线的,所以SqlDataAdapter这个对象是连接DataSet和数据库的桥梁,所有对DataSet的操作(填充,更新等)都要通过他   
        
      ado.net数据访问有两种方式:   
        
      1.离线--通过DataSet,然后离线增,删,改,最后通过SqlDataAdapter解   析到数据库中   
        
      2.直接对数据库操作SqlCommand   (Update,Insert,Delete)


    SqlCommand就是是命令了,可以用它来执行SQL命令   
      SqlDataAdapter就是数据适配器了,它是用于在数据源和数据集之间通讯的一组对象
    SqlCommand对应DateReader   
      SqlDataAdapter对应DataSet

    一、DataCommand

    复制代码
     1 string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
     2 SqlConnection sqlconn = new SqlConnection(sqlconnstr);
     3 //建立Command对象
     4 SqlCommand sqlcommand = new SqlCommand();
     5 //Command对象的属性赋值
     6 sqlcommand.Connection = sqlconn;
     7 sqlcommand.CommandText = "delete from Employees where ID=@ID";
     8 sqlcommand.Parameters.AddWithValue("@ID", TextBox1.Text);
     9 //打开数据库连接
    10 sqlconn.Open();
    11 
    12 //执行数据库操作
    13 intDeleteCount = sqlcommand.ExecuteNonQuery();
    14 
    15 删除对象、关闭连接
    16 
    17 sqlcommand = null;
    18 sqlconn.Close();
    19 sqlconn = null;
    复制代码
    复制代码
     1 SqlCommand myconn = new SqlCommand("select * from v_economy2_comidd where eid=" + Request.QueryString["eid"] + "", conn);
     2 
     3 conn.Open();
     4 
     5 SqlDataReader rd = myconn.ExecuteReader();
     6 
     7 rd.Read();
     8 
     9 Lbyear1.Text = rd["year1"].ToString();
    10 
    11 Lbmonth1.Text = rd["month1"].ToString();
    12 
    13 Lbcom_name.Text = rd["com_name"].ToString();
    14 
    15 rd.Close();
    16 
    17 conn.Close();
    复制代码

    二、DataAdapter

    复制代码
     1  string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; ;
     2         SqlConnection sqlconn = new SqlConnection(sqlconnstr);
     3         DataSet ds = new DataSet();
     4         sqlconn.Open();
     5         SqlDataAdapter sqld = new SqlDataAdapter("select * from student", sqlconn);
     6         sqld.Fill(ds, "tabstudent");
     7       
     8         GridView1.DataSource = ds.Tables["tabstudent"].DefaultView;
     9         GridView1.DataBind();
    10         sqlconn.Close();
    11         sqlconn = null;
    复制代码
    复制代码
     1        string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
     2        SqlConnection sqlconn = new SqlConnection(sqlconnstr);
     3        //建立DataSet对象
     4        DataSet ds = new DataSet();
     5        //建立DataTable对象
     6        DataTable dtable;
     7        //建立DataRowCollection对象
     8        DataRowCollection coldrow;
     9        //建立DataRow对象
    10        DataRow drow;
    11        //打开连接
    12        sqlconn.Open();
    13        //建立DataAdapter对象
    14        SqlDataAdapter sqld = new SqlDataAdapter("select * from Employees", sqlconn);
    15        //用Fill方法返回的数据,填充DataSet,数据表取名为“tabstudent”
    16        sqld.Fill(ds, "Employees");
    17        //将数据表tabstudent的数据复制到DataTable对象
    18        dtable = ds.Tables["Employees"];
    19        //用DataRowCollection对象获取这个数据表的所有数据行
    20        coldrow = dtable.Rows;
    21        //逐行遍历,取出各行的数据
    22        for (int inti = 0; inti < coldrow.Count; inti++)
    23        {
    24            drow = coldrow[inti];
    25            Label1.Text += " 编号:" + drow[0];
    26            Label1.Text += " 姓名:" + drow[1];
    27            Label1.Text += " 性别:" + drow[2];
    28            Label1.Text += " 年龄:" + drow[3];
    29            Label1.Text += " 工作日期:" + drow[4] + "<br />";
    30        }
    31        //执行更新
    32        sqld.Update(dtable.GetChanges());
    33        //使DataTable保存更新
    34        DataTable.AcceptChanges();
    35        sqlconn.Close();
    36        sqlconn = null;
    37  
    复制代码
  • 相关阅读:
    VUE 网页端改成桌面端(Electron)
    GitHub 的使用(用Git完成代码提交)
    Entity Framework Code Firest 连接Sqlserver数据库(增删改查)
    C# 微信小程序支付(ASP.NET Core WebApi )
    Entity Framework Code Firest 连接Postgresql数据库
    ASP.NET Core 实现 MQTT通讯协议 Demo(开源库:MQTTnet)
    ASP.NET Core WebApi + EF Core(实现增删改查,使用Swagger测试API)
    Redis不同数据类型的的数据结构实现
    C#通过Redis实现分布式锁
    网络爬虫基本原理(一)
  • 原文地址:https://www.cnblogs.com/wwwbdabc/p/10727739.html
Copyright © 2011-2022 走看看