简体   繁体   English

读取 C# 中的数据集

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM