从数据集中的表返回列值

时间:2014-05-14 07:25:13

标签: c# datatable ado.net

我有一个包含两个表的数据集。我想从第二个表中获取第一列的值并将其初始化为一个int变量。
该列的名称是CONTACT_ID

我试过这样。

  int Contract_id = Convert.ToInt32(dsDiscounts.Tables[1].Columns[0]);

但它显示错误:

  

无法转换类型&System; System.Data.DataColumn'输入   ' System.IConvertible'

任何人都可以帮助我

3 个答案:

答案 0 :(得分:21)

dsDiscounts.Tables[1].Columns[0]返回列定义(由DataColumn实例定义的数据类型,标题等)。当然,列定义转换为整数失败。

你需要的是来自某一行表格的单元格值(假设第一行)。您应该使用Rows集合来访问表行。按照索引获得DataRow后,您可以访问行by indexcolumn 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;
    }
}