2017-03-09 15 views
0

こんにちは私はちょうどこの言語C#とMySQL ..で新しく、なぜInUnit_Valueの値が0であるのかわかりません。
カラムを更新したいと思います。アイテムを追加するたびに、そのアイテムの数量を現在の値に加算する必要があります。テーブルを更新する

これは私がやりたいことです: =(数量* Unit_Value)であり、現在の値に追加する必要があります。 Unit_Value = textBox3.Text(Unit_Valueは、コンボボックスのデータベースからの固定値です。コンボボックスのselecteditemの名前で取得します)。

Screenshot of UI

Table data

これは私のコードです:

string constring1 = "datasource=localhost;port=;username=;password=;database=;"; 
MySqlConnection conDataBase1 = new MySqlConnection(constring1); 
MySqlCommand mycommand = new MySqlCommand("select `Unit_Value` from `tbl_inventory_item_unit` where `Unit_Name`='"+metroComboBox2.Text+"';",conDataBase1); 
MySqlCommand myincommand = new MySqlCommand (
    "UPDATE `tbl_inventory_in` SET `In`= `In` + '" + metroLabel12.Text + 
    "',`In_Quantity`='" + textBox3.Text + 
    "',`Unit_Value`='" + metroLabel11.Text + 
    "',`Unit_Name`='"+ metroComboBox2.Text + 
    "',`In_Date`='"+ metroLabel8.Text + 
    "'where `Item_ID`='" + textBox4.Text + 
    "';",conDataBase1); 

string b; 
int c; 
int a; 

try { 
    conDataBase1.Open(); 
    MySqlDataReader myReader1 = mycommand.ExecuteReader(); 
    while (myReader1.Read()) { 
     b = myReader1.GetValue(0).ToString(); 
     // c = Int32.Parse(b); 
     // c = Convert.ToInt32(c); 
     c = Int32.Parse(b); 
     a = Int32.Parse(textBox3.Text); 
     metroLabel11.Text = c.ToString(); 
     metroLabel12.Text = (a * c).ToString(); 
    } 
    myReader1.Close(); 
    MySqlDataReader myinreader = myincommand.ExecuteReader(); 
    while (myinreader.Read()) { 
    } 
    MessageBox.Show("Stocks Added"); 
    conDataBase1.Close(); 
} 
+0

フォーマットが完全に通ってくるしませんでした... –

+0

お読みくださいこの回答とリンクされた記事。上記のコードが現在脆弱であるSQLインジェクション攻撃を回避する方法について説明しています。http://stackoverflow.com/a/14376963/1991296 –

答えて

0

は、このようにそれを実行します。

String connectionString = "This is your connection string"; 
public static int updateTable(string query) 
     { 

      using (MySqlConnection con = new MySqlConnection(connectionString)) 
      { 
       con.Open(); 
       using (MySqlCommand cmd = con.CreateCommand()) 
       { 
        cmd.CommandText = query; 
        cmd.CommandType = CommandType.Text; 
        int result = cmd.ExecuteNonQuery(); 
        return result; 
       } 
      } 
     } 

To use this: 
updateTable("update yourtable set column1=value1, column2 = value2 where primarycolumn = primaryKeyValue");