クラス ライブラリを作成List<string[]>
し、DataGridView にデータを追加しようとしています。
文字列の形式は次のとおりです。
"テスト、1^グルコース^10/24/2013 10:00;テスト、2^BUN^10/25/2013 11:00;テスト、3^BUN^10/25/2013 11:00"
別のプログラムから文字列を渡しています。私はそれをリストにしてから追加しようとしましたDataTable
が、そのような運はありません。4 つの列を持つ 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;
}
}