C# 通过Datatable列的Foreach循环
我正在尝试从我的数据库中获取序列号。我不知道该怎么办。我是否应该在datatable中的某个位置引用我的datatable?我已经建立了与数据库的连接。我想要数据表“保修”中“SerialNumber”列中的所有值C# 通过Datatable列的Foreach循环,c#,datatable,C#,Datatable,我正在尝试从我的数据库中获取序列号。我不知道该怎么办。我是否应该在datatable中的某个位置引用我的datatable?我已经建立了与数据库的连接。我想要数据表“保修”中“SerialNumber”列中的所有值 我相信在这个senario中,foreach是正确的选择?您已经打开了一个连接,并且您有一个与该连接关联的sql命令,但是您还没有执行该命令。执行命令后,还需要一些东西将结果读入数据表 OleDbConnection conn1 = new OleDbConnection(); co
我相信在这个senario中,foreach是正确的选择?您已经打开了一个连接,并且您有一个与该连接关联的sql命令,但是您还没有执行该命令。执行命令后,还需要一些东西将结果读入数据表
OleDbConnection conn1 = new OleDbConnection();
conn1.ConnectionString = (@"ConnectionString");
conn1.Open();
DataTable dataTable = new DataTable();
OleDbCommand cmd = new OleDbCommand(sqlstring, conn1);
foreach(DataRow row in dataTable.Rows)
{
MessageBox.Show(row["SerialNumber"].ToString());
}
那代码行吗?如果是这样的话,那么我会说您找到了正确的解决方案。不是真的,我认为您错过了加载带有查询结果的DataTable的部分。。。您应该执行cmd并将结果加载到DataTable。。。然后继续读取表您需要一个DataAdapter或DataReader来真正从数据库中获取数据。例如,请参阅。@CodingGorilla它不起作用-但我添加它是为了显示我在
dataTable.Load(cmd.ExecuteReader())上遇到的错误代码>表示System.Data.dll中发生类型为“System.Data.OleDb.OledBeException”的未处理异常。其他信息:没有为一个或多个必需参数提供值。
您应该向我们展示您的sqlstring的外观。。。这是一个过程,它有where子句吗?我修正了一些语法,现在一切都正常了-谢谢大家。不知道为什么这个问题会得到这么多的反对票:/
DataTable dataTable = new DataTable();
using (var conn1 = new OleDbConnection(@"ConnectionString"))
using (var cmd = new OleDbCommand(sqlstring, conn1))
{
conn1.Open();
dataTable.Load(cmd.ExecuteReader());
}
foreach(DataRow row in dataTable.Rows)
{
MessageBox.Show(row["SerialNumber"].ToString());
}