3

クラス ライブラリを作成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;
    }
}
4

1 に答える 1