[英]Reading DataSet in C#
If we have filled a DataSet using a select query in C#, how can we read the column values?如果我们在 C# 中使用 select 查询填充了数据集,我们如何读取列值?
I want to do something like this:我想做这样的事情:
string name = DataSetObj.rows[0].columns["name"]
What would the correct syntax look like to achieve my goal?实现我的目标的正确语法是什么样的?
foreach(var row in DataSetObj.Tables[0].Rows)
{
Console.WriteLine(row["column_name"]);
}
If you already have a dataset, it's something like this;如果你已经有一个数据集,它是这样的;
object value = dataSet.Tables["MyTable"].Rows[index]["MyColumn"]
If you are using a DataReader:如果您使用的是 DataReader:
using (SqlCommand cmd = new SqlCommand(commandText, connection, null))
{
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
testID = (int)reader["id"];
}
}
}
sligthly different from what you posted与您发布的内容略有不同
object value = DataSetObj.Tables["Table_Name"].Rows[rowIndex]["column_name"]
Also, instead of Table_Name and Column_Name you can use the index此外,您可以使用索引来代替 Table_Name 和 Column_Name
You could put it into a common method.你可以把它放到一个通用的方法中。
C# C#
public static string GetRowValue(DataRow row, string name) {
if (!IsDBNull(row[name])) {
return row[name].ToString();
}
return string.Empty;
}
VB VB
Public Shared Function GetRowValue(ByVal row As DataRow, ByVal name As String) As String
If Not IsDBNull(row(name)) Then
Return row(name).ToString()
End If
Return String.Empty
End Function
var result = from a in ds.Tables[0].AsEnumerable() select new[] {a[0].ToString()};
AsEnumerable()
loads every record into application memory, and then we push the records into the string array. AsEnumerable()
将每条记录加载到应用程序 memory 中,然后我们将记录推送到字符串数组中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.