我的工作中,我必须使用更新查询一个项目,但问题是成功执行该查询后的数据没有更新 这里是我的代码更新查询执行成功但不更新数据
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 [email protected],[email protected] WHERE [email protected] and [email protected]";
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])
);下面的查询
你应该看看[我们可以停止使用AddWithValue()了吗?](http://blogs.msmvps.com/jcoehoorn/blog/2014/ 05/12/can-we-stop-using-addwithvalue-already /)并停止使用'.AddWithValue()' - 它可能导致意想不到的和令人惊讶的结果... – 2014-09-05 18:56:57
我不知道有关AddWithValue的问题。这很好。但为了以防万一...桌子上的任何触发器?当这种奇怪的行为发生时,我总是会责怪触发器。 – RThomas 2014-09-05 19:06:05
@marc_s甚至没有像那样工作'cmd.Parameters.Add(“@ tname”,SqlDbType.VarChar).Value = taskname_tb.Text;' – Mohsin 2014-09-05 19:08:44