c#中关于Dataset,datarow的数据访问问题

dt = (cdb.selectReader(sNumber)).Tables[0];
DataRow row = dt.Rows[0];
string x = row.ToString();
MessageBox.Show(x);
输出结果是system.Data.DataRow,不是我想要的结果。我想输出的是selectReader方法返回的数值。哪里写的有问题?

string x = row.ToString();这里调用的是DataRow.ToString,当然返回system.Data.DataRow,如果DataTable里只有一列,可以用string x = row[0].ToString();

DataSet是ADO.NET的中心概念。可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合。所谓独立,就是说,即使断开数据链路,或者关闭数据库,DataSet依然是可用的,DataSet在内部是用XML来描述数据的,由于XML是一种与平台无关、与语言无关的数据描述语言,而且可以描述复杂关系的数据,比如父子关系的数据,所以DataSet实际上可以容纳具有复杂关系的数据,而且不再依赖于数据库链路。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-04-19
string x = row.ToString();

这里调用的是DataRow.ToString,当然返回system.Data.DataRow,

如果DataTable里只有一列,可以用

string x = row[0].ToString();追问

可以了,谢谢,那如果不只有一列该怎么办呢
而且我的DataRow row = dt.Rows[0];这句话有什么意义么

追答

dt.Rows[0]表示获取DataTable表中的第一行

row[0]表示获取这一行的第一列的值,第2列就是row[1]了

本回答被提问者采纳
第2个回答  2013-10-17
dt = (cdb.selectReader(sNumber)).Tables[0];
if(dt.row.count>0)
{
foreach(DataRow dr in dt.rows)
{
//这里输出你要的每行记录中的内容
}
}
第3个回答  2013-10-17
把问题描述的详细一点,你的方法是返回结果集还是一个数值?是不是 row[0][列名"].ToString()?
相似回答