• ADO.NET之SqlDataAdpter对象


    5.1何为SqlDataAdapter

    5.1.2 创建并使用SqlDataAdapter对象

    strSQL ="select  * From tbname";

    SqlConnection = new SqlConnection(strConnection);

    SqlCommand = new SqlCommand(strSQL,cn);

    SqlDataAdapter da = new SqlDataAdapter();

    da.SelectCommand = cmd

    SqlDataAdapter 构造函数

    //传连接字串,这个方法会生成一个新的SqlConnection对象

    SqlDataAdapter da = new SqlDataAdapter(strSQL,strConnection);

    //传连接对象

    SqlDataAdapter da = new SqlDataAdapter(strSQL,cn);

    //传SqlCommand对象

    SqlCommand cmd = new SqlCommand(strSQL,cn);

    SqlDataAdapter da = new SqlDataAdapter(cmd);

    5.2.2 从查询中获取结果

    1.使用Fill() 方法

    调用SqlDataAdapter类的Fill方法会执行储存在SqlDataAdapter中的SqlCommand对象属性中的查询,并将结果储存在DataSet.

    以下代码调用Fill方法,并显示储存在DataSet中的结果

    //没时间睡觉了,抓紧时间呀,岁月不咬人,时间吹人老。

    strSQL ="select userName,userID From customers";

    DataSet ds = new DataSet();

    SqlDataAdapter da = new SqlDataAdapter(strSQL,strConnection);

    da.Fill(ds);

    foreach(DataRow row in ds.Tables[0].Rows)

      Console.Write("{0} - {1}",Row["userID"],row["userName"]);

    //这里的Fil方法隐式l创建一个DataTable对象,并且TableName是"Table"

    这个值的描述性比较差,可以用以下代码来自定义填充的tableName

    SqlDataAdapter da = new SqlDataAdapter(strSQL,cn);

    da.TableMappings.Add("Table","customers");//添加表名

    DataSet ds = new DataSet();

    da.Fill(ds);

    Console.Write("Table ={0}",ds.Tables[0].TableName);

    //也可用下面的方法指定Fill参数,不用手工添加表名

    5.2.2从查询中获取结果

    4.使用重载的Fill方法

    strSQL ="Select * From customers";

    SqlCommand cmd = new SqlCommand(strSQL,cn);

    SqlDataAdapter da = new SqlDataAdapter(cmd);

    DataTable dt = new DataTable();

    da.Fill(dt);

    foreach(DataRow row in dt.Rows)

    Console.Write("{0}-{1}",row[1],row[2]);

    用SqlDataAdapter类的Fill方法分页

    //从第一条记录开始,填充20条记录到"Products"的DataTable中

    SqlDataAdapter.Fill(DataSet,0,20,"Products");

    //这个方法很容易对查询进行分页,但其效率比较低。

  • 相关阅读:
    单双精度惹得祸
    ArcMap影像量取面积大于CAD规划图面积
    模板的特化(具体化)
    kubectl get nodes报错:The connection to the server localhost:8080
    Codeforces-1688 C: Manipulating History 【构造】
    音乐在线教育解决方案,打造在线教育高品质教学体验
    【Matplotlib绘制图像大全】(十四):双重堆积条形柱状图
    冥想第四百八十九天
    Linux内核设计与实现 第四章 系统调用
    对强缓存和协商缓存的理解
  • 原文地址:https://blog.csdn.net/aasmfox/article/details/5700888