ADO.NET连接方式

使用Command、DataReader和DataSet两种方法实现数据绑定

     方法1:使用Command和DataReader 

SqlConnection con = new SqlConnection("server=.;database=Department;uid=sa;pwd=123456");
            con.Open();
            string sqlStr = "select * from emp"; 
            SqlCommand  sqlCmd = new SqlCommand(sqlStr, con);
            SqlDataReader  reader = sqlCmd.ExecuteReader();
            GridView1.DataSource = reader;
            GridView1.DataBind();

      方法2:使用DataSet数据集(DataAdapter可以无需打开(con.Open()方法),可以自己实现)


            SqlDataAdapter sda = new SqlDataAdapter();
            SqlConnection con = DB.createCon();
            SqlCommand cmd = new SqlCommand();
            string sqlStr = "select * from emp";
            sda.SelectCommand = new SqlCommand(sqlStr, con);
            DataSet ds = new DataSet();
            sda.Fill(ds, "employee");
            GridView1.DataSource = ds.Tables["employee"].DefaultView;
            GridView1.DataBind();


    Fill方法隐式执行DataAdapter的SelectCommand中的SQL查询,查询的结果用于定义DataSet表的结构,并用数据来填充表。


SqlCommand和SqlDataAdapter的区别


    SqlCommand对应DataReader  SqlDataAdapter对应DataSet DataAdapter表示一组SQL命令和一个数据库连接,它们用于填充DataSet和更新数据源

    .NET中读取数据库中的数据有两种方式,一种是基于连接的方式,就象你所给出的程序那种方式,还有一种就是基于非连接的方式,就是你说的使用DataSet保存结果集。

    基于连接方式读取数据时,结果放在DataReader流中(内存流),DataReader是只向前且是只读,本代码中将DataReader的数据读出后放在一个泛型集合里,将泛型集合返回给方法的调用者,方法的调用者就可以对泛型集合进行各种操作。

    基于非连接方式读取数据时,需要将查询语句赋给DataAdapter的SelectCommand方法,通过DataAdapter的Fill方法将数据库中的数据填充到DataSet,然后DataSet就可以与数据显示控件进行绑定,进行用户交互了


SQLHelper中的方法:(方法2和此方法其实一样)

 

SqlDataAdapter是数据适配器,而SqlCommand是命令对象,SqlDataAdapterda = new SqlDataAdapter(cmd);就是执行你的SQL。

 

CommandType.Text代表执行的是SQL语句

CommandType.StoreProcedure代表执行的是存储过程

CommandType代表要执行的类型


Public Function ExecSelect(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal sqlParams As SqlParameter()) As DataTable  
  
        Dim sqlAdapter As SqlDataAdapter  
        Dim dt As New DataTable  
        Dim ds As New DataSet  
        '还是给cmd赋值  
        cmd.CommandText = cmdText  
        cmd.CommandType = cmdType  
        cmd.Connection = conn  
        cmd.Parameters.AddRange(sqlParams)  '参数添加  
        sqlAdapter = New SqlDataAdapter(cmd)  '实例化adapter  
        Try  
            sqlAdapter.Fill(ds)           '用adapter将dataSet填充   
            dt = ds.Tables(0)             'datatable为dataSet的第一个表  
            cmd.Parameters.Clear()        '清除参数  
        Catch ex As Exception  
            MsgBox("查询失败", CType(vbOKOnly + MsgBoxStyle.Exclamation, MsgBoxStyle), "警告")  
        Finally                            '最后一定要销毁cmd  
            Call CloseCmd(cmd)  
        End Try  
        Return dt  
    End Function  



评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值