[英]Adding List<string> to DataTable
我創建了一個類庫,我正在嘗試將List<string[]>
中的數據添加到DataGridView中。
字符串的格式如下:
“測試,1 ^葡萄糖^ 10/24/2013 10:00;測試,2 ^ BUN ^ 10/25/2013 11:00;測試,3 ^ BUN ^ 10 / 25/2013 11:00”
我從另一個程序傳遞字符串。 然后我把它變成一個列表,然后嘗試將它添加到DataTable
但沒有這樣的運氣。 我用四列創建了datagridview。
選中 - 復選框
患者姓名 - 字符串
訂單名稱 - 字符串
訂單日期 - 字符串
原因 - 組合框
我收到一個錯誤:
列表大於列數。
注意 :在傳遞給這個程序之前,我仍然可以創建我想要的字符串,所以如果我需要在將字符串傳遞給程序之前對字符串執行某些操作,請告訴我。 有更容易的方法嗎?
我只想要顯示數據,我將繼續處理其余部分。
任何幫助,將不勝感激。
這是我的代碼:
public partial class RenewOrders : Form
{
public static string strMLMPatientData = string.Empty;
public RenewOrders(string all_patient_data)
{
InitializeComponent();
strMLMPatientData = "Test, 1^Glucose^10/24/2013 10:00;Test, 2^BUN^10/25/2013 11:00;Test, 3^BUN^10/25/2013 11:00"
}
private void RenewOrders_Load(object sender, EventArgs e)
{
this.ConvertStringToList(strMLMPatientData);
}
private void ConvertStringToList(string strMLMPatientData)
{
var patient_list = strMLMPatientData.Split(';').Select(x => x.Split('^')).ToList();
DataTable dtTable = ConvertListToDataTable(patient_list);
dataGridView1.DataSource = dtTable;
}
// Convert to DataTable.
static DataTable ConvertListToDataTable(List<string[]> patient_list)
{
// New table.
DataTable dtTable = new DataTable();
dtTable.Columns.Add("Name", typeof(string));
dtTable.Columns.Add("Order Name", typeof(string));
dtTable.Columns.Add("Order Date/Time", typeof(string));
foreach (var row in patient_list)
{
table.Rows.Add(row);
}
return dtTable;
}
}
首先,您需要適當地吐出字符串以獲取字符串數組列表。 像這樣的東西:
var patient_list = new List<string[]>(strMLMPatientData.Split(';').Select(x => x.Split(',')));
甚至更好:
var patient_list = strMLMPatientData.Split(';').Select(x => x.Split(',')).ToList();
你需要Linq,但你明白了。
然后,您需要向數據表中添加列。 當沒有列時,你不能為它添加行。
在你的函數中嘗試這樣的東西
//add columns appropriately
DataTable table = new DataTable();
table.Columns.Add("Name", typeof(string));
table.Columns.Add("Order", typeof(string));
table.Columns.Add("Date", typeof(string));
foreach (var row in patient_list)
table.Rows.Add(row);
return table;
在這里查看示例。 就目前而言,您的逗號分隔輸入字符串似乎與您的數據表列結構不匹配。 你需要解決它。 但我希望你知道哪條路走了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.