我已按如下方式构建了Sql命令:
string _InsertVehicleQuery = "INSERT INTO VSI_VehicleRecords(StockNumber,Status,Make,Model,Colour,Spefication) VALUES (@StockNumber, @Status, '@Make', '@Model', '@Colour', '@Specification');";
SqlCommand _InsertVehicleCommand = new SqlCommand(_InsertVehicleQuery);
_InsertVehicleCommand.Parameters.Add(new SqlParameter("@StockNumber", __StockNumber));
_InsertVehicleCommand.Parameters.Add(new SqlParameter("@Status", __Status));
_InsertVehicleCommand.Parameters.Add(new SqlParameter("@Make", Make));
_InsertVehicleCommand.Parameters.Add(new SqlParameter("@Model", Model));
_InsertVehicleCommand.Parameters.Add(new SqlParameter("@Colour", Colour));
_InsertVehicleCommand.Parameters.Add(new SqlParameter("@Specification", Specification));
//Method call
DataUtility.NonQuery(_InsertVehicleCommand);
//Method structure
public static void NonQuery(SqlCommand Command)
{
Command.Connection = __Connection;
OpenConnection();
Command.ExecuteNonQuery();
CloseConnection();
}
在SQL查询的执行或构建过程中,我没有做任何令人目眩的事情。我在数据库表中得到的结果:
VehicleRecordID StockNumber Status Make Model Colour Spefication
1 -1 0 @Make @Model @Colour @Specification
提前感谢任何解决方案,也欢迎任何建议!
答案 0 :(得分:4)
参数名称不应该在VALUES
列表中的单引号中,因为它们将被解释为字符串文字。
答案 1 :(得分:2)
不要在参数周围加上引号 即
... (@StockNumber, @Status, @Make, @Model, @Colour, @Specification);";
而不是
... (@StockNumber, @Status, '@Make', '@Model', '@Colour', '@Specification');";
此外,您可以使用AddWithValue
_InsertVehicleCommand.Parameters.AddWithValue("@Make", Make);
而不是
_InsertVehicleCommand.Parameters.Add(new SqlParameter("@Make", Make));
答案 2 :(得分:1)
不要在参数附近加上“@parameter”
string _InsertVehicleQuery = "INSERT INTO VSI_VehicleRecords(StockNumber,Status,Make,Model,Colour,Spefication) VALUES (@StockNumber, @Status, @Make, @Model, @Colour, @Specification);";
SqlCommand _InsertVehicleCommand = new SqlCommand(_InsertVehicleQuery);
_InsertVehicleCommand.Parameters.Add(new SqlParameter("@StockNumber", __StockNumber));
_InsertVehicleCommand.Parameters.Add(new SqlParameter("@Status", __Status));
_InsertVehicleCommand.Parameters.Add(new SqlParameter("@Make", Make));
_InsertVehicleCommand.Parameters.Add(new SqlParameter("@Model", Model));
_InsertVehicleCommand.Parameters.Add(new SqlParameter("@Colour", Colour));
_InsertVehicleCommand.Parameters.Add(new SqlParameter("@Specification", Specification));
答案 3 :(得分:0)
从参数定义中删除@
字符,并引用'
。
然后设置每个参数addes的Value属性
new SqlParameter(“StockNumber”,__ StockNumber).Value = value;