Я работаю над личным проектом для компании, в которой я работаю, чтобы контролировать уровни запасов, чтобы попрактиковаться в моем c #.
Я хочу, чтобы мое приложение осуществляло поиск по tblJuiceStock, находило соответствующий FlavourID для того, чтопользователь вводит и обновляет запас этой записи с помощью запроса UPDATE SET.
public void InsertJuiceStockWithCheck()
{
using (OleDbConnection conn = new OleDbConnection())
{
conn.ConnectionString = ConnectionString;
conn.Open();
string tblJuiceStockCheck = "SELECT FlavourID, Quantity FROM tblJuiceStock";
OleDbCommand cmdCheck = new OleDbCommand(tblJuiceStockCheck, conn);
OleDbDataAdapter daCheck = new OleDbDataAdapter(cmdCheck);
DataTable dtCheck = new DataTable();
daCheck.Fill(dtCheck);
foreach (DataRow row in dtCheck.Rows)
{
if ((int)row["FlavourID"] == fID)
{
int currentQty = (int)row["Quantity"];
int updatedQty = currentQty + qty;
string tblJuiceStockExisting = @"UPDATE tblJuiceStock
SET Quantity = @newquantity
WHERE FlavourID = @flavourID";
OleDbCommand cmdJuiceStockExisting = new OleDbCommand(tblJuiceStockExisting, conn);
cmdJuiceStockExisting.Parameters.AddWithValue("@flavourID", fID);
cmdJuiceStockExisting.Parameters.AddWithValue("@newquantity", updatedQty);
cmdJuiceStockExisting.ExecuteNonQuery();
matchFound = true;
break;
}
}
if (!matchFound)
{
string tblJuiceStockNew = "INSERT INTO tblJuiceStock (FlavourID, Quantity, MinStockPOS) VALUES (@fID, @quantity, @minstock)";
OleDbCommand cmdJuiceStockNew = new OleDbCommand(tblJuiceStockNew, conn);
cmdJuiceStockNew.Parameters.AddWithValue("@fID", fID);
cmdJuiceStockNew.Parameters.AddWithValue("@quantity", qty);
cmdJuiceStockNew.Parameters.AddWithValue("@minstock", amt);
cmdJuiceStockNew.ExecuteNonQuery();
}
}
}
Обратите внимание: этот запрос прекрасно работает в Access, когда я заменяю параметры одинаковыми значениями.Кроме того, используя точки останова, я определил, что для параметров установлены правильные значения, назначенные им переменные получены в другом методе, все методы вызываются в событии кнопки отправки.
Однако значение количества вTblJuiceStock остается прежним.
Моя таблица tblJuiceStock