![](/img/trans.png)
[英]ASP.NET MVC 4: error when making Ajax call to controller to update SQL Server database
[英]Update comment for sql server error at ASP.NET
我在SQL Server中有一个表Seatlist
:
FlightNo Origin 1 2 3
---------------------------------------
AK511 PEN NULL 3 NULL
AK576 KUL 4 7 NULL
以下是我的更新查询:
SqlCommand cmdupdate = new SqlCommand ("update Seatlist
set 2 = " + SeatNo.Text.ToString() +
" where ((FlightNo='" + FlightNo.Text.ToString() + "')
and (Origin='" + Origin.Text.ToString() + "'))", con);
cmdupdate.ExecuteNonQuery();
我也尝试下面的查询:
SqlCommand cmdupdate = new SqlCommand ("update Seatlist
set 2 = @seat
where ((FlightNo='" + FlightNo.Text.ToString() + "')
and (Origin='" + Origin.Text.ToString() + "'))", con);
cmdupdate.Parameters.AddWithValue(@"seat", SeatNo.Text);
但是我收到以下错误:
'2'附近的语法不正确。
说明:执行当前Web请求期间发生未处理的异常。 请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。异常详细信息:System.Data.SqlClient.SqlException:'2'附近的语法不正确。
您应该避免使用原始输入值进行字符串连接。 您为SQL注入打开了大门,这是某人可以用来危害您的Web应用程序的最常见方法之一。 您应该只使用参数化查询。
您的查询问题取决于使用2作为列名。 由于2是定界的指示符 ,因此您应使用方括号,如下所示:
string commandText = "UPDATE Seatlist " +
"SET [2] = @Seat " +
"WHERE FlightNo = @FlightNo AND Origin = @Origin";
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(commandText, connection);
command.Paramters.AddWithValue("@Seat", SeatNo.Text);
command.Parameters.AddWithValue("@FlightNo", FlightNo.Text);
command.Parameters.AddWithValue("@Origin", Origin.Text);
// ... rest of your code
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.