[英]how to convert datatable to List <String>?
我嘗試使用此代碼但無法做到:
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”
這段代碼似乎有很多錯誤。 讓我們從頂部開始:
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>
。 您稍后似乎想要遍歷DataTable
的Rows
屬性。 所以,必須修復:
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()
接受一個對象並返回一個字符串。 如果CheckProduct()
您需要發布CheckProduct()
的方法簽名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.