用SqlDataReader和SqlDataAdapter读取数据有啥区别?

用SqlDataReader和SqlDataAdapter读取数据有啥区别?,第1张

这个是这样的,SqlDataReader只能用于读,在读的过程中数据库一直保持打开状态,不过读的效率还是可以的

SqlDataAdapter(数据适配器)、DataSet

先将数据取出来放到dataset中,然后就可以关闭数据库了,通过sqldataadapter还可以更新删除数据库中的东西,功能很强大,要好好学习。

像绑定某些数据源之类的话强烈建议用SqlDataAdapter(数据适配器)、DataSet

方法,这样不仅绑定简单而且可以做更新和删除 *** 作(当然用read读出来后在建立连接去删除也是可以的)找本书看看那吧,c#的书现在很多了,我手上都超过三本了

用datagridview吧

using System.data.sqldataclient(纯手写的,没用工具,你自己再整理下)

usint System.data

sqldatareader sdr//声明读取器

sqlcommand com//command对象

sqlconnection con=new sql

("server=.databse=你的数据库名字",uid=你登录数据库的用户名,pwd=数据库密码)//连接字符串

datagridview//取名dgvDateTimeInfo

//读数据库里的数据 窗体加载事件里写

//sql 语句

string sql="select 你要的字段名 from 字段所在的表名"

com=new sqlcommand(sql,con)

con.open()

sdr=com.sqldatareader()

while(sdr.read())

{

datatime datagridview中数据对应列的名=sdr["数据所在的列名"]//注意数据类型,其它的列也是这样读取

}

sdr.close()

con.close()

//然后在datagridview中找到DataPropertyName指定数据所在数据库中的列名实现数据的绑定

//双击显示数据详细信息

//不知道你数据库中的标识列是什么,什么类型的,现在就以INT类型为例

int no=convert.toint32(dgvDateTimeInfo.selectrow[0].cells["标识列名"].value)

string sql="select * from 表名 where 标识列名=no"

//接下来的和前面的一样,只是列多了一些

com=new sqlcommand(sql,con)

con.open()

sdr=com.sqldatareader()

while(sdr.read())

{

接收数据的控件的text属性=(记的数据的转换)sdr["数据所在的列名"]//注意数据类型,其它的列也是这样读取

}

sdr.close()

con.close()

//如果用3层面向对象的思维来做会很简单


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10094545.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存