如何将数据表转换为List <string>?</string>

时间:2014-03-27 17:41:27

标签: c# list

我尝试使用此代码,但无法执行此操作:

SPDatalogic sp = new SPDatalogic(); //datalogic class
List<String> dt = new List<String>();
dt = sp.CheckProduct(id); //Datatable

List<String> list = new List<String>();

SPBusinesslogic ab = new SPBusinesslogic();  //businesslogic class
String prod;
prod = ab.CheckProduct(id);                   
list.Add(prod);

return list;

得到了简单的错误,就像无法将数据表转换为字符串一样 我不知道该怎么做。

错误:
错误1:

  

无法隐式转换类型   'System.Collections.Generic.List'到'string'

错误2:

  

无法将类型'System.Data.DataTable'隐式转换为   'System.Collections.Generic.List'

1 个答案:

答案 0 :(得分:1)

此代码似乎有很多错误。让我们从顶部开始:

SPDatalogic sp = new SPDatalogic(); //datalogic class
List<String> dt = new List<String>();
dt = sp.CheckProduct(id);
List<String> list = new List<String>();

dt显然是List<String>sp.CheckProduct()显然会返回DataTable,当然不能隐式转换为List<String>。您以后似乎想要遍历Rows的{​​{1}}属性。所以,必须修复:

DataTable

您现在可以遍历SPDatalogic sp = new SPDatalogic(); //datalogic class DataTable dt; dt = sp.CheckProduct(id); List<String> list = new List<String>(); 来构建dt.Rows

List<>

这应该可以正常工作(虽然我怀疑你需要在循环中声明foreach (DataRow dr in dt.Rows) { SPBusinesslogic ab = new SPBusinesslogic(); //businesslogic class string prod; prod = ab.CheckProduct(id); list.Add(prod); } ),但是不清楚ab是什么。也许你的行中有某种列?如果是这样,你可能想要这样的东西:

id

当然,这假定var id = dr["id"]; string prod = ab.CheckProduct(id); list.Add(prod); 接受一个对象并返回一个字符串。如果不起作用,您需要发布ab.CheckProduct()的方法签名。