我对ASP.NET技术很陌生,我偶然发现了我的应用程序的特殊问题。 我试图更新布尔数据库列,以便每当用户单击RadGridView数据行上的按钮时将值设置为True(1)。该按钮似乎工作正常,因为没有错误或异常,但数据库列根本没有更新。
以下是我的代码片段:
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();
}
}
提前感谢。
答案 0 :(得分: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">
答案 1 :(得分:0)
试试这样。我想你错过了@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);