尝试/捕获方法错误 ASP.NET
本文关键字:错误 ASP NET 方法 尝试 | 更新日期: 2023-09-27 17:57:10
我正在努力使这项工作。我希望它在插入后检查记录是否存在,但它总是返回错误:第 1 行:"nvarchar"附近的语法不正确。有人可以向我指出我的声明中有什么问题吗?另外,如果您有更好的尝试捕获方法,请更多地启发我。只是 ASP.NET 编程新手
提前谢谢。
protected void Page_Load(object sender, EventArgs e)
{
string connString_LibrarySystem = "Server=DEVSERVER;User ID=sa;Password=Sup3r-Us3r;Database=LibrarySystem";
string strSQL = "INSERT INTO TblBooks (bookid, booktitle, lastname, firstname, description, categoryid, dateadded, statusid, quantity, isdeleted) VALUES (@bookid, @booktitle, @lastname, @firstname, @description, @categoryid, @dateadded, @statusid, @quantity, @isdeleted)";
SqlConnection conn = new SqlConnection(connString_LibrarySystem);
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd = new SqlCommand(strSQL, conn);
cmd.Parameters.AddWithValue("@bookid", Request.Form["bookid"]);
cmd.Parameters.AddWithValue("@booktitle", Request.Form["booktitle"]);
cmd.Parameters.AddWithValue("@lastname", Request.Form["lastname"]);
cmd.Parameters.AddWithValue("@firstname", Request.Form["firstname"]);
cmd.Parameters.AddWithValue("@description", Request.Form["description"]);
cmd.Parameters.AddWithValue("@categoryid", Request.Form["categoryid"]);
cmd.Parameters.AddWithValue("@dateadded", Request.Form["dateadded"]);
cmd.Parameters.AddWithValue("@statusid", Request.Form["statusid"]);
cmd.Parameters.AddWithValue("@quantity", Request.Form["quantity"]);
cmd.Parameters.AddWithValue("@isdeleted", Request.Form["isdeleted"]);
cmd.ExecuteNonQuery();
{
conn.Close();
}
statuslabel.Text = "Insert successful";
}
编辑:刚刚删除了数据类型。
不必
在插入语句中包含数据类型。跳过它们。
尝试
string strSQL = "INSERT INTO TblBooks (bookid, booktitle, lastname, firstname, description, categoryid, dateadded, statusid, quantity, isdeleted) VALUES (@bookid, @booktitle , @lastname, @firstname, @description, @categoryid, @dateadded , @statusid , @quantity, @isdeleted)";
不要
将类型放在您的值中。
string strSQL = "INSERT INTO TblBooks (bookid, booktitle, lastname, firstname, description, categoryid, dateadded, statusid, quantity, isdeleted) VALUES (@bookid , @booktitle , @lastname , @firstname , @description , @categoryid , @dateadded , @statusid , @quantity , @isdeleted )";
为了使这项工作,您需要从sqlstring变量中删除数据类型。
我可能会切换到使用存储过程,然后加载参数,因为这基本上就是您在这里使用 addwithvalue 命令所做的
此外,cmd.ExecuteNonQuery()
将返回一个 int 来告诉您它已成功添加。 如果它返回 1,您就知道它是完整的。http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery.aspx
首先,在SQL中删除您的类型,您不需要它们(正如其他答案所建议的那样)
其次,通过以下方式向查询添加一个参数:
cmd.Parameters.AddWithValue("@bookid", Request.Form["bookid"]);
您不确保 Request.Form["bookid"] 不为空,这将导致您当前的问题
删除值列表中的数据类型。 你不需要它们。