如果我们在C#中使用select查询填充了DataSet,我们如何读取列值?
我想做这样的事情:
string name = DataSetObj.rows[0].columns["name"]
实现目标的正确语法是什么样的?
答案 0 :(得分:8)
foreach(var row in DataSetObj.Tables[0].Rows)
{
Console.WriteLine(row["column_name"]);
}
答案 1 :(得分:2)
如果您已有数据集,则类似于此;
object value = dataSet.Tables["MyTable"].Rows[index]["MyColumn"]
如果您使用的是DataReader:
using (SqlCommand cmd = new SqlCommand(commandText, connection, null))
{
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
testID = (int)reader["id"];
}
}
}
答案 2 :(得分:1)
与您发布的内容略有不同
object value = DataSetObj.Tables["Table_Name"].Rows[rowIndex]["column_name"]
此外,您可以使用索引
代替Table_Name和Column_Name答案 3 :(得分:1)
你可以把它放到一个常用的方法中。
C#
public static string GetRowValue(DataRow row, string name) {
if (!IsDBNull(row[name])) {
return row[name].ToString();
}
return string.Empty;
}
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
答案 4 :(得分:0)
var result = from a in ds.Tables[0].AsEnumerable() select new[] {a[0].ToString()};
AsEnumerable()
将每条记录加载到应用程序内存中,然后我们将记录推送到字符串数组中。