我正在开发一个项目,其中我使用了更新查询,但问题是在查询成功执行后数据未更新 这是我的代码
protected void Update_btn_Click(object sender, EventArgs e)
{
var aid = Convert.ToInt32(Session["Aid"].ToString());
try
{
var conn = ConfigurationManager.ConnectionStrings["AccountsConnectionString"].ConnectionString;
using (var con = new SqlConnection(conn))
{
con.Open();
string query = "Update Tasks set TaskName=@tname,TaskDetails=@tdetails WHERE Id=@id and CreatedBy=@aid";
var cmd = new SqlCommand(query, con);
cmd.Parameters.AddWithValue("@tname", taskname_tb.Text);
cmd.Parameters.AddWithValue("@tdetails", Detail_ta.Text);
cmd.Parameters.AddWithValue("@id",Convert.ToInt32(id_tb.Text));
cmd.Parameters.AddWithValue("@aid",aid);
cmd.ExecuteNonQuery();
Response.RedirectPermanent("~/AllTasks.aspx",false);
}
}
catch (Exception exception)
{
Response.Write("<script>Some Error occured</script>");
}
}
尝试参数而不转换为int32
但结果相同
也可以在sql中运行查询时工作正常。
表格任务的架构
CREATE TABLE [dbo].[Tasks] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[TaskName] VARCHAR (500) NOT NULL,
[TaskDetails] VARCHAR (MAX) NOT NULL,
[CreationDate] DATETIME NOT NULL,
[CreatedBy] INT NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_Tasks_ToAccounts] FOREIGN KEY ([CreatedBy]) REFERENCES [dbo].[Accounts] ([Id])
);
答案 0 :(得分:0)
首先尝试运行以下查询
从任务WHERE Id = @id和CreatedBy = @ aid
中选择*它应该返回一行。
第二次尝试在应用程序运行时重命名数据库文件。由于您尚未手动处理连接,因此如果您尝试重命名/删除数据库文件系统,则不应允许它。
答案 1 :(得分:0)
问题已解决
在仔细思考了上述问题后,我发现了这一点
我尚未在Is.Postback
中添加Page_Load()
,因此当我点击更新按钮时,页面Asp.Net
页面生命周期会发生,并且它会再次获取旧值并更新它以便我我无法看到任何更改因为它正在更新旧数据