Команда обновления SQL выполнена, но без изменений в базе данных
Я совершенно новичок в технологии ASP.NET и наткнулся на специфическую проблему с моим приложением. Я пытаюсь обновить столбец логической базы данных, чтобы установить значение True (1) всякий раз, когда пользователь нажимает кнопку в строках данных RadGridView. Кнопка работает нормально, поскольку не было ошибок или исключений, однако столбец базы данных вообще не обновлялся.
Вот фрагмент моего кода:
ASPX:
<telerik:GridButtonColumn ButtonType="PushButton" ConfirmTextFields="TrxId"
ConfirmTextFormatString="Are you sure you want to release Order No. {0}?"
CommandName="btnRelease" Text="Release Order">
</telerik:GridButtonColumn>
C#:
protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e)
{
if (e.CommandName == "btnRelease")
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ZEUS"].ConnectionString);
con.Open();
SqlCommand command = new SqlCommand("UPDATE [TransactsData] SET [IsReleased] = 1, [TimeReleased] = GETDATE() WHERE [TrxId] = @TrxId", con);
command.Parameters.AddWithValue("@TrxId", SqlDbType.BigInt);
command.ExecuteNonQuery();
con.Close();
}
}
заранее спасибо.
2 ответа
Решение
Попробуй это:
protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e)
{
if (e.CommandName == "btnRelease")
{
GridDataItem item = (GridDataItem)e.Item;
// Replace "TrxId" with the reference to the item containing your TrxId
string TrxId = item["TrxId"].Text;
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ZEUS"].ConnectionString);
con.Open();
SqlCommand command = new SqlCommand("UPDATE [TransactsData] SET [IsReleased] = 1, [TimeReleased] = GETDATE() WHERE [TrxId] = @TrxId", con);
command.Parameters.AddWithValue("@TrxId", TrxId);
command.ExecuteNonQuery();
con.Close();
}
}
Кстати, я полагаю, у вас есть что-то подобное в вашей RadGrid:
<telerik:GridBoundColumn DataField="TrxId" HeaderText="Transaction ID" UniqueName="TrxId">
Попробуй вот так. я думаю, что вы пропустили значение @TrxId
var TrxId = 10;//The value of @TrxId parameter
command.Parameters.Add(new SqlParameter("@TrxId",TrxId));
Или вот так
var TrxId = 10;//The value of @TrxId parameter
command.Parameters.AddWithValue("@TrxId",TrxId);