0

私のデータベースには4つの列があります。このデータベースの値を datagridview でフェッチします。しかし、datagridview に 2 つの列を追加したいと考えています。それで、6列のデータグリッドビューを作りたいです。この 6 列のうち、4 列にはデータベース値が入力されます。これどうやってするの?

        OleDbConnection con = new OleDbConnection("CONNECTION STRING");
        con.Open();
        DataTable dtusers = new DataTable();

        OleDbCommand cmd = new OleDbCommand("Select Code,Description,Qnty,Rate from PurchaseTable'", con);
        OleDbDataAdapter da = new OleDbDataAdapter(cmd);
        da.Fill(dtusers);
        dataGridView1.DataSource = dtusers;
        dataGridView1.Columns[0].Name = "Code ";
        dataGridView1.Columns[1].Name = "Description";
        dataGridView1.Columns[2].Name = "Qnty";
        dataGridView1.Columns[3].Name = "Rate";
        con.Close();

ここに 4 つの列があります。コード、説明、数量、レート。このデータグリッドビューにさらに 2 つの列を追加したいと考えています。分量とナレーション。しかし、Amount 列と Narration 列は PurchaseTable にありません。これを行うにはどうすればよいですか?

4

3 に答える 3

1

空白の列が必要な場合は、それらを作成して挿入します。データがデータベースにある場合は、クエリに結合を追加してデータを取得します。

空白列の追加

DataGridView dgv = new DataGridView();
dgv.DataSource = dtusers;

DataGridViewColumn amount = new DataGridViewColumn();
amount.HeaderText = "Amount";
amount.Name = "Amount";
dgv.Columns.Insert(0, amount);

DataGridViewColumn narration = new DataGridViewColumn();
narration.HeaderText = "Narration";
narration.Name = "Narration";
dgv.Columns.Insert(0, narration);
于 2013-09-04T15:06:40.020 に答える
0

列名はハードコーディングされているため、デザイナーを使用してデータグリッドビューに事前定義された列を作成できると思います (datagridview をクリック -> [列の編集] を選択)。

必要な 6 つの列をすべて作成します。最初の 4 つDataPropertyNameは、クエリの列の名前に設定します。最後の 2 つは空のままにします。

そして、datagridview.AutoGeneratedColumns = false;データを datagridview にバインドする前に set を覚えておいてください...(form_Loadハンドラーのどこか)

この後、コードは次のようになります。

using (OleDbConnection con = new OleDbConnection("CONNECTION STRING"))
{
    con.Open();
    DataTable dtusers = new DataTable();

    using(OleDbCommand cmd = new OleDbCommand("Select Code,Description,Qnty,Rate from PurchaseTable'", con))
    {
        OleDbDataAdapter da = new OleDbDataAdapter(cmd);
        da.Fill(dtusers);
        dataGridView1.DataSource = dtusers;
    } 
    con.Close(); 
} 
于 2013-09-04T19:46:53.550 に答える