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

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

我现在需要做的是从数据集中获取单个值(实际上它是两个第一行第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) 

所以,我需要获得两个特定的项目并将它们存储为int,psudo代码将是

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

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

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

你可以这样做……

如果要使用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()); 

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()); 

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

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

要么

 int? var1 = ds.Tables[0].Rows[0].Field(3); //column index 
 int var1 = int.Parse(ds.Tables[0].Rows[0][3].ToString()); int var2 = int.Parse(ds.Tables[0].Rows[0][4].ToString()); 
 int intVar = (int)ds.Tables[0].Rows[0][n]; // n = column index