我不知道你的 Table里面是什么样的数据··ItemArray 返回 object [] 数组
你拿一个object 数组 去 ConverttoInt32()
你不报错我到觉得奇怪了 ··
如果是业务需要··那就要另外来写 toInt32() 对你的需要行不通
他只返回一个数字 而不是 int数组!
一般拿个ConverttoInt32(dtRows[1][2]) 就是这样了!
adaperFill(ds,'dt1');
adaperFill(ds,'dt2');
dataGridView1DataSource = dsTables[1];
/// <summary>
/// SQL Server 的数据库连接字符串
/// </summary>
private const String connString =
@"Data Source=localhost\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True";
/// <summary>
/// 用于查询的 SQL 语句
/// </summary>
private const String SQL =
@"
SELECT
TOP 3
ROW_NUMBER() OVER (ORDER BY SUM(SALE_MONEY) DESC) AS NO,
SALE_DATE,
SUM(SALE_MONEY) AS SUM_MONEY
FROM
SALE_REPORT
GROUP BY
SALE_DATE
ORDER BY
SUM(SALE_MONEY) DESC";
/// <summary>
/// 将数据读取到 DataSet 中
///
/// 这里演示了2种方式,一种是从数据库中读取,一种是从XML文件中读取
/// </summary>
public void ReadDataToDataSet()
{
ConsoleWriteLine("使用DataAdapter,将数据填充到DataSet中,然后脱离数据库,直接对DataSet进行处理。");
// 建立数据库连接
SqlConnection conn = new SqlConnection(connString);
// 创建一个适配器
SqlDataAdapter adapter = new SqlDataAdapter(SQL, conn);
// 创建DataSet,用于存储数据
DataSet testDataSet = new DataSet();
// 执行查询,并将数据导入DataSet
adapterFill(testDataSet, "result_data");
// 关闭数据库连接
connClose();
// 处理DataSet中的每一行数据
foreach (DataRow testRow in testDataSetTables["result_data"]Rows)
{
// 将检索出来的数据,输出到屏幕上
ConsoleWriteLine("NO:{0} ; Date:{1} ; Money:{2} ",
testRow["NO"], testRow["SALE_DATE"], testRow["SUM_MONEY"]
);
}
// 注意:
// 在通过 DataTable 的 WriteXml 方法来导出数据,给其他系统使用的时候
// 还需要使用 WriteXmlSchema 来导出 Schema
// 否则在使用 ReadXml 读取的时候, 会发生错误,因为新的 DataTable 不知道表的结构,不知道该如何去读取
// 除非你手动设置好每个列的字段/数据类型等信息,那么 DataSet 或者 DataTable 将能够理解如何倒入,而不在需要 ReadXmlSchema
ConsoleWriteLine("将 DataTable 的数据,写入到 XML 文件中。");
testDataSetTables["result_data"]WriteXmlSchema(DATATABLE_SCHEMA_XML_FILE);
testDataSetTables["result_data"]WriteXml(DATATABLE_XML_FILE);
ConsoleWriteLine("从 XML 文件中,读取数据到 DataTable 里面。");
DataTable newDt = new DataTable();
newDtReadXmlSchema(DATATABLE_SCHEMA_XML_FILE);
newDtReadXml(DATATABLE_XML_FILE);
// 处理DataSet中的每一行数据
foreach (DataRow testRow in newDtRows)
{
// 将检索出来的数据,输出到屏幕上
ConsoleWriteLine("NO:{0} ; Date:{1} ; Money:{2} ",
testRow["NO"], testRow["SALE_DATE"], testRow["SUM_MONEY"]
);
}
}
为什么你上面的都熟悉,却不熟悉datatable
datatable就是一张表
具体如下:
创建完dataset对象以后,就可以创建dataadapter对象来填充datatable对象在dataadpter对象上调用fill方法,然后指定想要填充的datatable对象
下面的代码使用名字薇da的dataadpter来填充dataset对象ds的authors表:
dafill(ds,"authors");
访问datatable:
在dataset对象中放置数据之后,就可以通过编程的方式访问数据如下面代码所示,每个dataset对象由一个或者多个datatable对象组成,就可以用名字或者顺序位置来指向这些datatable对象:
dstables["authors"];
或者
dstables[0];
datarow和datacolumn类是datatable类的主要组成部分可以使用datarow对象以及它的属性和方法来取出和计算datatable对象中的值
比如:
foreach(datacolumn col in dstables[0]columns)
{
lstitemsitemsadd(colcolumnname);
}
对在datatable对象中的行和列书面的计算允许在datatable对象中访问个别字段
比如,x是想访问的数据的行索引
dstables["authors"]rows[x][1];
dstables["authors"]rows[x]["fieldname"];
应该差不多了可以用了现在
其实你用着用着就会了
以上就是关于如何获取datatable的某个值全部的内容,包括:如何获取datatable的某个值、数据库查询结果放在datatable[1]中、C#中如何使用DataSet和DataTable接收从数据库传过来的值 详细代码 谢谢 (初学者)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)