2 qq 24489235 qq_24489235 于 2014.12.13 23:05 提问

数据库的连接式查询怎么返回一张表的数据

数据库中的连接是查询是这样string name = reader["rolename"].ToString();来获取数据的,
如果数据有很多列呢,这样肯定是不合理的,本人菜鸟,求指导啊

3个回答

guwei4037
guwei4037   Ds   Rxr 2014.12.13 23:10

reader["rolename"]这种方式是通过datareader对象获得的,如果要获取很多列(就是返回一个数据集),则使用sqldataadapter对象填充dataset得到。

guwei4037
guwei4037 回复qq_24489235: 看这里面的reader.GetInt32(0); http://www.educity.cn/develop/495796.html
3 年多之前 回复
qq_24489235
qq_24489235 能否示例一下
3 年多之前 回复
guwei4037
guwei4037 回复qq_24489235: 还可以是索引。
3 年多之前 回复
qq_24489235
qq_24489235 嗯 ,我知道但是我就是想了解下这个原理,你说的可以办到,是一行一行的保存在一个集合里面,但是你每读取一行都要知道数据field的名字,不然怎么读取?
3 年多之前 回复
guwei4037
guwei4037 回复guwei4037: 返回一张表的操作,基本都用填充数据集的方式。
3 年多之前 回复
guwei4037
guwei4037 回复qq_24489235: 当然可以办到,只不过这不是好的选择,因为它始终保持连接,效率不高。你可以在datareader里面一行一行的取,然后放到一个List对象里面去。
3 年多之前 回复
qq_24489235
qq_24489235 我知道是什么错误了,但是如果像你这样把他们读取出来的数据加载一个集合里面的话,那不就是断开式查询吗,连接式查询就不能办到在不知道数据库表中的field时获取整个表的数据吗?
3 年多之前 回复
qq_24489235
qq_24489235 开始我也用了这个SqlDataadapter后来它报了一个错 “已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭”这个是怎么回事啊
3 年多之前 回复
caozhy
caozhy   Ds   Rxr 2014.12.14 00:24

你说的“列”在数据库中叫做字段(Field)
你可以用不同的字段名取得不同的字段,比如 name = reader["name"].ToString(); age = int.Parse(reader["age"]);
如果你的数据包含很多行,(我们管每一行叫做记录,Record)
那么可以循环获取:
while (reader.Read())
{
//这里是某一行
name = reader["name"].ToString(); age = int.Parse(reader["age"]);
//下面我们可以添加到列表、ListBox之类的地方,比如
listBox.Items.Add(name);
}
走完整个循环,就全部读取了。

qq_24489235
qq_24489235 如果是在我不知道这个表里面有哪些的field呢?我想获取这个表中的所有的数据,难道连接式查询不能办到吗?
3 年多之前 回复
guwei4037
guwei4037   Ds   Rxr 2014.12.13 23:11

如果想系统的学习一下ado.net,可以参考msdn文档。http://msdn.microsoft.com/zh-cn/library/e80y5yhx.aspx

qq_24489235
qq_24489235 嗯,谢谢了
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!