还是触发器的问题
asp.net2.0:
protected void Button1_Click(object sender, EventArgs e)
{
string connstring = ConfigurationManager.ConnectionStrings["qztvoaConnectionString"].ToString();
SqlConnection dbConnection = new SqlConnection(connstring);
dbConnection.Open();
string query = "insert into ttapeborrow(tapecode,borrowman,borrowdate,borrowreason,operateman,operatedate) values(@tapecode,@borrowman,@borrowdate,@borrowreason,@operateman,@operatedate)";
SqlCommand dbCommand = new SqlCommand(query, dbConnection);
dbCommand.Parameters.Add(new SqlParameter("@tapecode", tapecodeBox.Text.ToString()));
dbCommand.Parameters.Add(new SqlParameter("@borrowman", userDropDownList.SelectedItem.Text.ToString()));
dbCommand.Parameters.Add(new SqlParameter("@operateman", Session["username"].ToString()));
dbCommand.Parameters.Add(new SqlParameter("@borrowreason", reasonDropDownList.SelectedItem.Text.ToString()));
dbCommand.Parameters.Add("@operatedate", SqlDbType.DateTime).Value = DateTime.Now.Date;
dbCommand.Parameters.Add("@borrowdate", SqlDbType.DateTime).Value = DateTime.Now.Date;
try
{
dbCommand.ExecuteNonQuery();
Response.Write("<script>");
Response.Write("window.alert('添加成功')");
Response.Write("</script>");
}
catch
{
Response.Write("<script>");
Response.Write("window.alert('添加失败,请与数据库管理员联系')");
Response.Write("</script>");
}
dbConnection.Close();
}
触发器:
CREATE TRIGGER Trigger1
ON dbo.ttapeborrow
After insert
AS
begin
update ttape
set instack = '0'
from ttape a, ttapeborrow b
where a.tapecode = b.tapecode
end
现在的情况是:只要有这个触发器,上面那段代码就无法添加记录,而一旦把触发器去掉,添加记录就正常,触发器语法是没错了,然到是逻辑错了?
protected void Button1_Click(object sender, EventArgs e)
{
string connstring = ConfigurationManager.ConnectionStrings["qztvoaConnectionString"].ToString();
SqlConnection dbConnection = new SqlConnection(connstring);
dbConnection.Open();
string query = "insert into ttapeborrow(tapecode,borrowman,borrowdate,borrowreason,operateman,operatedate) values(@tapecode,@borrowman,@borrowdate,@borrowreason,@operateman,@operatedate)";
SqlCommand dbCommand = new SqlCommand(query, dbConnection);
dbCommand.Parameters.Add(new SqlParameter("@tapecode", tapecodeBox.Text.ToString()));
dbCommand.Parameters.Add(new SqlParameter("@borrowman", userDropDownList.SelectedItem.Text.ToString()));
dbCommand.Parameters.Add(new SqlParameter("@operateman", Session["username"].ToString()));
dbCommand.Parameters.Add(new SqlParameter("@borrowreason", reasonDropDownList.SelectedItem.Text.ToString()));
dbCommand.Parameters.Add("@operatedate", SqlDbType.DateTime).Value = DateTime.Now.Date;
dbCommand.Parameters.Add("@borrowdate", SqlDbType.DateTime).Value = DateTime.Now.Date;
try
{
dbCommand.ExecuteNonQuery();
Response.Write("<script>");
Response.Write("window.alert('添加成功')");
Response.Write("</script>");
}
catch
{
Response.Write("<script>");
Response.Write("window.alert('添加失败,请与数据库管理员联系')");
Response.Write("</script>");
}
dbConnection.Close();
}
触发器:
CREATE TRIGGER Trigger1
ON dbo.ttapeborrow
After insert
AS
begin
update ttape
set instack = '0'
from ttape a, ttapeborrow b
where a.tapecode = b.tapecode
end
现在的情况是:只要有这个触发器,上面那段代码就无法添加记录,而一旦把触发器去掉,添加记录就正常,触发器语法是没错了,然到是逻辑错了?
...全文
相关推荐
MSSQL2008R2 触发器问题代码
触发器可能会引发性能问题,因为它们增加了数据库操作的复杂性。如果处理不当,触发器可能导致死锁,或者在高并发环境下成为性能瓶颈。为了解决这些问题,以下是一些最佳实践:1.
MYSQL设置触发器权限问题的解决方法
然而,设置和管理触发器涉及到权限问题,特别是当涉及`SUPER`权限和二进制日志(binary logging)时。本文将深入探讨这些问题并提供解决方案。
mysql设置触发器权限问题的解决方法.docx
触发器可以用于实现复杂的业务逻辑,如数据验证、审计跟踪或者保持数据的一致性。然而,对于权限管理,有时会遇到无法创建或修改触发器的问题,这通常与用户的权限不足有关。
对有insert触发器表取IDENTITY值时发现的问题
"在SQL Server数据库中,遇到一个与insert触发器相关的问题,当向具有触发器的T1表插入数据时,通过@@IDENTITY获取的ID值实际上是T2表新插入记录的ID,而非T1表的。这涉及到
mysql设置触发器权限问题的解决方法.pdf
然而,在设置触发器时,用户可能会遇到权限问题,导致无法创建或修改触发器。本文将详细介绍 MySQL 设置触发器权限问题的解决方法。


