Я создаю приложение в WPF, используя C#, где пользователи заполняют datagrid, и информация затем сохраняется в DataTable под названием smb1. Следующий код работает для вставки данных в базу данных SQL, но при изменении кода для его обновления не работает. Кто-нибудь знает, как я могу изменить свой код, чтобы позволить Updates, поскольку нет ошибок, возникающих при запуске моего приложения в Visual Studio. Я должен добавить, что столбец «Оборудование» не может быть отредактирован в datagrid, поэтому возвращаемые данные совпадают с данными, взятыми из базы данных, так что обновленные строки будут сопоставляться со строками оборудования в базе данных SQL с использованием предложения WHERE. Ниже приведен исходный код вставки плюс моя попытка обновления базы данных.Обновление таблицы SQL с содержимым datatable
Вставить код
SqlConnection con = new SqlConnection(MyConnectionString);
string SqlCmdText = "Insert into SHIFTLOG Values(@EQUIPMENT,@BATCHNO,@PRODUCTNO,@STATUS,@DATE,@PERIOD,@MACHINE)";
SqlCommand sc = new SqlCommand(SqlCmdText, con);
con.Open();
foreach (DataRow row in smb1.Rows)
{
sc.Parameters.Clear();
sc.Parameters.AddWithValue("@EQUIPMENT", row["EQUIPMENT"]);
sc.Parameters.AddWithValue("@BATCHNO", row["BATCHNO"]);
sc.Parameters.AddWithValue("@PRODUCTNO", row["PRODUCTNO"]);
sc.Parameters.AddWithValue("@STATUS", row["STATUS"]);
sc.Parameters.AddWithValue("@DATE", DateTime.Now.ToString("yyyy-MM-dd"));
sc.Parameters.AddWithValue("@PERIOD", DateTime.Now.ToString("tt"));
sc.Parameters.AddWithValue("@MACHINE", "SMB1");
sc.ExecuteNonQuery();
}
con.Close();
Покушение для кода Обновление
SqlConnection con = new SqlConnection(MyConnectionString);
string SqlCmdText = "UPDATE SHIFTLOG SET EQUIPMENT='@EQUIPMENT',BATCHNO='@BATCHNO',PRODUCTNO='@PRODUCTNO',STATUS='@STATUS',DATE='2013-09-12',PERIOD='@PERIOD',MACHINE='@MACHINE' WHERE EQUIPMENT='@EQUIPMENT'";
SqlCommand sc = new SqlCommand(SqlCmdText, con);
con.Open();
foreach (DataRow row in smb1.Rows)
{
sc.Parameters.Clear();
sc.Parameters.AddWithValue("@EQUIPMENT", row["EQUIPMENT"]);
sc.Parameters.AddWithValue("@BATCHNO", row["BATCHNO"]);
sc.Parameters.AddWithValue("@PRODUCTNO", row["PRODUCTNO"]);
sc.Parameters.AddWithValue("@STATUS", row["STATUS"]);
sc.Parameters.AddWithValue("@PERIOD", DateTime.Now.ToString("tt"));
sc.Parameters.AddWithValue("@MACHINE", row["MACHINE"]);
sc.ExecuteNonQuery();
}
con.Close();
Спасибо за любую помощь.
@ astander & Damith.I не могу поверить, что я никогда не заметил, что при сравнении 2 примера! Большое спасибо за помощь ребятам! –