購入情報を追加する Windows アプリケーションがあります。購入がデータベースに追加される前に、ユーザーはコンボ ボックスからアイテムを選択し、リスト ボックスに追加します。ユーザーが [購入を追加] をクリックすると、データベースに 1 つまたは複数のアイテムが存在します。
そこにあるアイテムの名前は、データベース内の製品名と正確に一致します。
リストボックス内の各項目の文字列を取得し、データベース内の項目の量を減らす SQL クエリを書きたいと思います。合計数量は、テーブル Product の Quantity 列に保存されます。
このタスクを実行するアイデアを持っている人はいますか?
リストボックス項目の文字列をこのメソッドに1つずつ渡そうとしています
public string Update(string product)
{
// Create connection object
int ix = 0;
string rTurn = "";
OleDbConnection oleConn = new OleDbConnection(connString);
try
{
oleConn.Open();
string sql = "UPDATE [Product] SET [Quantity]=[Quantity] - 1 " + " WHERE [Product Name]= " + product;
OleDbCommand oleComm = new OleDbCommand(sql, oleConn);
oleComm.Parameters.Add("@product", OleDbType.Char).Value = product;
ix = oleComm.ExecuteNonQuery();
if (ix > 0)
rTurn = "Stock Updated";
else
rTurn = "Update Failed";
}
catch (Exception ex)
{
}
finally
{
oleConn.Close();
}
return rTurn;
}
上記のメソッドは、以下のメソッドから製品名を取得します。
public string updateStock()
{
string listItem = string.Empty;
foreach (var listBoxItem in listBox1.Items)
{
if (listBox1.Items.IndexOf(listBoxItem) < listBox1.Items.Count - 1)
{
listItem = listBox1.Items.ToString();
}
}
return listItem;
}
そして、ボタン イベント ハンドラからこのコードを呼び出します。
Update(updateStock());