.NET - 如何从数据集中检索特定项?

时间:2011-06-14 15:57:26

标签: c# .net asp.net ado.net dataset

我有以下代码连接到数据库并将数据存储到数据集中。

我现在需要做的是从数据集中获取单个值(实际上它是两个第一行第4列和第5列)

OdbcConnection conn = new OdbcConnection();
    conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString2"].ConnectionString;

    DataSet ds = new DataSet();

    OdbcDataAdapter da = new OdbcDataAdapter("SELECT * FROM MTD_FIGURE_VIEW1", conn);

    da.Fill(ds)

所以,我需要获取两个特定的项目并将它们存储到整数中,psudo代码将是

int var1 = ds.row1.column4
int var2 = ds.row1.column5

关于我如何做到这一点的任何想法?

此外,有些人也可以了解数据表,因为这可能与我将如何做到这一点有关。

5 个答案:

答案 0 :(得分:27)

你可以这样做......

如果您想使用ColumnName

进行访问
Int32 First = Convert.ToInt32(ds.Tables[0].Rows[0]["column4Name"].ToString());
Int32 Second = Convert.ToInt32(ds.Tables[0].Rows[0]["column5Name"].ToString());

或者,如果您想使用Index

进行访问
Int32 First = Convert.ToInt32(ds.Tables[0].Rows[0][4].ToString());
Int32 Second = Convert.ToInt32(ds.Tables[0].Rows[0][5].ToString());

答案 1 :(得分:4)

DataSet对象有一个Tables数组。如果你知道你想要的表,它将有一个Row数组,每个对象都有一个ItemArray数组。在您的情况下,代码很可能是

int var1 = int.Parse(ds.Tables[0].Rows[0].ItemArray[4].ToString());

等等。这将为您提供第一行中的第4项。您还可以使用Columns而不是ItemArray,并将列名指定为字符串,而不是记住它的索引。如果表结构发生变化,那么这种方法可以更容易跟上。那就是

int var1 = int.Parse(ds.Tables[0].Rows[0]["MyColumnName"].ToString());

答案 2 :(得分:2)

我更喜欢使用这样的东西:

int? var1 = ds.Tables[0].Rows[0].Field<int?>("ColumnName");

int? var1 = ds.Tables[0].Rows[0].Field<int?>(3);   //column index

答案 3 :(得分:0)

int var1 = int.Parse(ds.Tables[0].Rows[0][3].ToString());
int var2 = int.Parse(ds.Tables[0].Rows[0][4].ToString());

答案 4 :(得分:0)

int intVar = (int)ds.Tables[0].Rows[0][n];   // n = column index