问题描述
|
我有以下代码连接到数据库并将数据存储到数据集中。
我现在需要做的是从数据集中获得一个值(实际上,第一行第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)
因此,我需要获取两个特定的项目并将其存储到ints中,伪代码为
int var1 = ds.row1.column4
int var2 = ds.row1.column5
关于如何执行此操作的任何想法?
另外,是否有人也可以对数据表有所了解,因为这可能与我要执行的操作有关。
解决方法
你可以喜欢...
如果您想使用ѭ2access访问
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());
等等。这将在第一行中为您提供第四项。您也可以使用Columns而不是ItemArray并将列名指定为字符串,而不用记住它的索引。如果表结构发生更改,则可以更轻松地跟上该方法。所以那是
int var1 = int.Parse(ds.Tables[0].Rows[0][\"MyColumnName\"].ToString());
, 我更喜欢使用这样的东西:
int? var1 = ds.Tables[0].Rows[0].Field<int?>(\"ColumnName\");
要么
int? var1 = ds.Tables[0].Rows[0].Field<int?>(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