我有一个包含两个表的数据集。我想从第二个表中获取第一列的值并将其初始化为一个int变量。
该列的名称是CONTACT_ID
我试过这样。
int Contract_id = Convert.ToInt32(dsDiscounts.Tables[1].Columns[0]);
但它显示错误:
无法转换类型&System; System.Data.DataColumn'输入 ' System.IConvertible'
任何人都可以帮助我
答案 0 :(得分:21)
dsDiscounts.Tables[1].Columns[0]
返回列定义(由DataColumn实例定义的数据类型,标题等)。当然,列定义转换为整数失败。
你需要的是来自某一行表格的单元格值(假设第一行)。您应该使用Rows
集合来访问表行。按照索引获得DataRow
后,您可以访问行by index,column name,列对象等中的单元格。按列名获取第一行的单元格值:
dsDiscounts.Tables[1].Rows[0]["CONTACT_ID"]
答案 1 :(得分:2)
试试这个
int Contract_id = Convert.ToInt32(dsDiscounts.Tables[1].Rows[0]["CONTACT_ID"]);
答案 2 :(得分:0)
public static T SafeGet<T>(this System.Data.DataSet dataset, string tableindex, int RowCount, string Nameofcolumn)
{
try
{
return dataset.Tables[tableindex].Rows[RowCount].IsNull(Nameofcolumn) == false ?
(T)Convert.ChangeType(dataset.Tables[tableindex].Rows[RowCount][Nameofcolumn], typeof(T))
: default(T);
}
catch (Exception ex)
{
throw ex;
}
}