2017-09-22 11 views
1

基本的には、TextBoxの別の列をデータベースから照会した値とともに追加したいとします。私は私のDataGridViewがitemcode, Category, itemDescription, unitcostがデータベースからのものであり、quantityは、テキストボックスの入力からである DataGridViewにデータベースとTextBoxを設定する

  |itemcode|Category|itemDescription|unitcost|quantity| 

のようなものを示したいと思います。

private void btnAddToCart_Click(object sender, EventArgs e) 
{ 
    con.OpenConnection(); 
    MySqlCommand cmd = con.connection.CreateCommand(); 
    string search = txtSearchProduct.Text; 
    string quantity = txtQuantity.Text; 
    string query = "SELECT itemcode, Category, itemDescription, unitcost FROM tblprowareproducts WHERE itemDescription LIKE ?search"; 
    cmd.CommandText = query; 
    cmd.Parameters.AddWithValue("?search", "%" + search + "%"); 
    using (MySqlDataAdapter mda = new MySqlDataAdapter(cmd)) 
    { 
     DataTable dt = new DataTable(); 
     mda.Fill(dt); 

     dgvCart.DataSource = dt; 

    } 
} 

それはTextBoxから来ているのquantityという名前unitcost後に別の列と値を追加する方法はありますか?

+0

問題は何ですか?期待される結果は何ですか?あなたが受け取った結果は何ですか? –

+0

更新された質問 – Alpha

答えて

1

は、あなたがDataTableにこの方法を列を追加することができ、たとえば、問題のためのさまざまなソリューションがあります

DataTable dt = new DataTable(); 
mda.Fill(dt); 

var quantity = dt.Columns.Add("quantity", typeof(int)); 
quantity.DefaultValue = int.Parse(txtQuantity.Text); 
dt.AsEnumerable().ToList().ForEach(r => 
{ 
    r[quantity] = quantity.DefaultValue; 
}); 

dgvCart.DataSource = dt; 

注1:テキストから整数値を取得するためにTryParseを使用することができます。

注2:行の追加時に列のデフォルト値が列に適用されます。ですから、既存の行に適用するには、私が行ったようなループを使用する必要があります。それ以降に追加する新しい行については、自動的に適用されます。

+0

更新された回答を必ずお読みください。 –

関連する問題