非常に新しいプログラミングで、アイテムコードがデータベースに存在しないときに新しいアイテムを追加する方法を考えるのが難しい。 else文を追加するまでスムーズに動作するようです。ここに私のコード:アイテムが利用できないときに新しいデータを追加する
private void btnAdd_Click(object sender, EventArgs e)
{
try
{
con.Open();
OleDbCommand command = new OleDbCommand(@"Select * from TblInventory where ItemCode=itemcode");
command.Connection = con;
command.Parameters.AddWithValue("@itemcode", txtItem.Text);
OleDbDataReader reader = command.ExecuteReader();
if (reader.HasRows == true)
{
OleDbCommand cmd = new OleDbCommand(@"Update TblInventory set Quantity = Quantity + @Quantity
WHERE ItemCode = @itemcode");
cmd.Connection = con;
cmd.Parameters.AddWithValue("@Quantity",Convert.ToInt32(txtQuantity.Text));
cmd.Parameters.AddWithValue("@itemcode", txtItem.Text);
cmd.ExecuteNonQuery();
MessageBox.Show("Data Saved !");
}
else
{
OleDbCommand cmdInsert = new OleDbCommand(@"insert into TblInventory (ItemCode,ProductName,Quantity)
values ('" + txtItem.Text + "','" + txtProduct.Text + "','" + txtQuantity.Text + "')");
cmdInsert.Connection = con;
cmdInsert.ExecuteNonQuery();
MessageBox.Show("New Data Added");
}
con.Close();
}
catch (Exception ex)
{
MessageBox.Show("Error " + ex);
}
}
SQLインジェクションの警告 –
:THIS TO
:THIS FROM ?エラーが発生していますか?挿入クエリ文字列がどのように見えるか確認しましたか?データ用に使用しているテキストボックスには一重引用符はありますか? – PhillipXT
私はあなたの 'Select * from TblInventory 'のItemCode = itemcode'を' itemcode'ではなく '@ itemcode'で見つけました。 –