Sql server 使用sql DataTable中存在的整数ID创建列表

Sql server 使用sql DataTable中存在的整数ID创建列表,sql-server,list,c#-4.0,datatable,Sql Server,List,C# 4.0,Datatable,我有一个整数列表: List<int> AllowedLinks = new List<int>(); 我不希望我的列表是datarow类型的,因为我将需要整数用于以后的操作 您应该为数据行中ID所在的列编制索引 在我的代码修订版中,我使用var x作为占位符。 您需要设置datatable中包含整数值的列的索引。 更好的是,你也可以用它的名字 DataObj = new DAL(); DataTable dt int x = 0; // <= her

我有一个整数列表:

    List<int> AllowedLinks = new List<int>();

我不希望我的列表是datarow类型的,因为我将需要整数用于以后的操作

您应该为数据行中ID所在的列编制索引
在我的代码修订版中,我使用var x作为占位符。
您需要设置datatable中包含整数值的列的索引。
更好的是,你也可以用它的名字

DataObj = new DAL(); 
DataTable dt 
int x = 0; // <= here 0 is the index of the column with the IDs 
int name = "ID"; // <= here ID is the name of the column with the IDs
dt = DataObj.GetDataTable("GetAllowedLinksForUserRole",1); 
foreach (DataRow myRow in dt.Rows) 
{ 
    AllowedLinks.Add(Convert.ToInt32(myRow[x])); 
    // This is to use column name
    // AllowedLinks.Add(Convert.ToInt32(myRow[name])); 
} 

签入quickwatch。必须有与行myRow关联的属性/索引。 您不能像
Convert.ToInt32((myRow.ToString())那样直接访问数据行。

相反,您需要通过

Convert.ToInt32((myRow.propertyname).ToString())

或者
Convert.ToInt32((myRow[incrementedindex]).ToString())

尝试调试代码,查看myRow中的值,并使用列名。示例myRow[“Column1”]
    AllowedLinks.Add(Convert.ToInt32(myRow[x] == DBNull.Value ? 0 : myRow[x])); 
Convert.ToInt32((myRow.propertyname).ToString())