使用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

ADO.NET连接方式的更多相关文章

  1. ADO.NET 连接方式和非链接方式访问数据库

    一.//连接方式访问数据库的主要步骤(利用DataReader对象实现数据库连接模式) 1.创建连接对象(连接字符串) SqlConnection con = new SqlConnection(Co ...

  2. ADO.NET 连接方式进行数据库访问

    转自:http://www.cnblogs.com/oneword/archive/2010/09/10/1823414.html 连接到数据源 连接到数据源需要使用两步: 1.创建连接字符串 2.使 ...

  3. 2.9_Database Interface ADO结构组成及连接方式实例

    说通俗点OLE DB和ODBC都是最底层的东西,而ADO对象给我们提供了一个“可视化”和应用层直接交互的组件,ADO对象T通过OLE DB间接取得数据库中的数据,如下图: 从上面看出,可以说ADO是应 ...

  4. [穷尽]ADO.NET连接字符串

    微软提供的四种数据库连接方式: System.Data.OleDb.OleDbConnection System.Data.SqlClient.SqlConnection System.Data.Od ...

  5. ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借

    ASP.NET MVC深入浅出系列(持续更新)   一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ...

  6. sql的四种连接方式

    1.内联接.(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接. 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 students ...

  7. VMware的三种网络连接方式区别

    关于VMware的三种网络连接方式,NAT,Bridged,Host-Only ,在刚接触的时候通常会遇到主机Ping不通虚拟机而虚拟机能Ping得通主机:主机与虚拟机互不相通等等网络问题.本文就这三 ...

  8. 关于ADO.NET连接ORACLE,使用ODAC连接中的一些问题

    ADO.NET连接ORACLE时,用到ODAC组件时,有几点注意的. 1.安装的具体方法见:http://jingyan.baidu.com/article/e4511cf336ce872b845ea ...

  9. Oracle表的几种连接方式

    1,排序 - - 合并连接(Sort Merge Join, SMJ) 2,嵌套循环(Nested Loops, NL) 3,哈希连接(Hash Join, HJ) Join是一种试图将两个表结合在一 ...

随机推荐

  1. 初窥Linux 之 区分硬连接和软连接

    一.Linux下的两种连接文件及创建方式 在Linux下面的连接文件有两种——软连接和硬连接,虽然都是连接文件,但两者却有很大的区别.一种是类似于Windows的快捷方式功能的文件(或目录),这种连接 ...

  2. 第m个全排列

    #include<stdio.h> #include<string.h> int flag,n,m; ],sum,vis[]; void dfs(int k) { ) retu ...

  3. hdu 4970 Killing Monsters(数学题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4970 Problem Description Kingdom Rush is a popular TD ...

  4. Jetty:配置连接器

    连接器配置概览 连接器用于接收网络连接,配置一个连接器须要配置:  1)连接器的网络參数(比如:port):  2)连接器使用的服务(比如:executors,schedulers).  3)为接收连 ...

  5. MySql数据库SQL语句将编码

    -- 查看所有字符编码 SHOW CHARACTER SET; -- 查看创建数据库的指令并查看数据库使用的编码 show create database dbtest; -- 查看数据库编码: sh ...

  6. zoj2059(经典dp)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1059 分析:dp[i][j]表示前i个石头组成两座塔高度差为j的较低 ...

  7. [Ext JS 4] 实战之 Picker 和 Picker Field

    前言 所谓的picker , 就是弹出一个选择框,让你选择一些信息.比如选择日期, 选择颜色等: 选择的结果总是要放在一个地方的,Picker Field 就是用来放置选择结果的一个文本框. 在Ext ...

  8. 文件操作ofstream,open,close,ifstream,fin,依照行来读取数据, fstream,iosin iosout,fio.seekg(),文件写入和文件读写,文件拷贝和文件

     1.ofstream,open,close 写入文件 #include<iostream> #include<fstream> using namespace std; ...

  9. 在Sublime Text3中运行PHP代码

    一.前言 最近由于工作需要要与第三方系统对接,另外由于文档中关于其中几个接口就只有很简单的描述,弄了半天都没有弄成功.跟第三方负责的人沟通后还是没有找到具体问题出在哪里,另外因为他们没有开发人员懂.n ...

  10. 网络编程——XML与JSON

    概述 如上篇博客点击打开链接介绍.互联网公司发布Web服务,于是开发者们就可以将其用到自己的应用中.Web服务的工作方式类似于浏览器,输入请求,按下回车,等待远程计算机响应.当响应返回时,浏览器会使用 ...