C# 通过Datatable列的Foreach循环

C# 通过Datatable列的Foreach循环,c#,datatable,C#,Datatable,我正在尝试从我的数据库中获取序列号。我不知道该怎么办。我是否应该在datatable中的某个位置引用我的datatable?我已经建立了与数据库的连接。我想要数据表“保修”中“SerialNumber”列中的所有值 我相信在这个senario中,foreach是正确的选择?您已经打开了一个连接,并且您有一个与该连接关联的sql命令,但是您还没有执行该命令。执行命令后,还需要一些东西将结果读入数据表 OleDbConnection conn1 = new OleDbConnection(); co

我正在尝试从我的数据库中获取序列号。我不知道该怎么办。我是否应该在datatable中的某个位置引用我的datatable?我已经建立了与数据库的连接。我想要数据表“保修”中“SerialNumber”列中的所有值


我相信在这个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());
}