.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