我尝试使用此代码,但无法执行此操作:
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'
答案 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()
的方法签名。