在C#中读取DataSet

时间:2011-07-14 11:52:50

标签: c# dataset

如果我们在C#中使用select查询填充了DataSet,我们如何读取列值?

我想做这样的事情:

string name = DataSetObj.rows[0].columns["name"]

实现目标的正确语法是什么样的?

5 个答案:

答案 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()将每条记录加载到应用程序内存中,然后我们将记录推送到字符串数组中。