簡體   English   中英

如何將數據表轉換為列表<String> ?

[英]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> 您稍后似乎想要遍歷DataTableRows屬性。 所以,必須修復:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM