Sql 已成功执行更新查询,但未更新数据

Sql 已成功执行更新查询,但未更新数据,sql,asp.net,sql-server,tsql,Sql,Asp.net,Sql Server,Tsql,我正在处理一个使用更新查询的项目,但问题是在查询成功执行后,数据没有更新 这是我的密码 protected void Update_btn_Click(object sender, EventArgs e) { var aid = Convert.ToInt32(Session["Aid"].ToString()); try { var conn = ConfigurationManager.ConnectionStrings["AccountsConne

我正在处理一个使用更新查询的项目,但问题是在查询成功执行后,数据没有更新 这是我的密码

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>");
    }
}

))

首先尝试运行以下查询

从任务中选择*,其中Id=@Id和CreatedBy=@aid

它应该返回一行


第二,在应用程序运行时尝试重命名数据库文件。由于您尚未手动断开连接,所以如果您尝试重命名/删除数据库文件系统,则不应允许此操作。

问题已解决。 经过对上述问题的思考,我发现
我没有在
Page_Load()
中添加
Is.Postback
,因此当我单击更新按钮时,页面
Asp.Net
页面生命周期发生,它再次获取旧值并进行更新,因此我无法看到任何更改,因为它正在更新旧数据

您应该签出并停止使用
.AddWithValue()
-这可能会导致意外的结果…我不知道AddWithValue的问题。很高兴知道。但以防万一。。。桌子上有触发器吗?当这种奇怪的行为发生时,我总是责怪触发器。@marc\u甚至不是那样工作的
cmd.Parameters.Add(“@tname”,SqlDbType.VarChar)。Value=taskname\u tb.Text您能给我们看一下连接字符串吗?您使用的是“附加的”
.mdf
文件吗?很可能,您的
更新
很好-只是更新了错误的数据库。当您在Visual Studio中运行此操作时,我打赌
.mdf
文件会复制到
\bin\debug
文件夹中,并在那里进行更新-因此,如果您在
App\u Data
中检查文件,您将看不到更新。两种解决方案:(1)使用完全限定的路径名(
c:\something\app\u data\smartlyfe.mdf
或(2)将您的数据库放在服务器上,并使用逻辑数据库名称引用它,同时停止摆弄自由浮动文件。是的,上面的查询正在返回一条记录,其次,在应用程序运行时,它不允许重命名数据库。您似乎从来没有真正检查过实际的数据库值
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])