问题描述
- 【问题】其他信息: 必须声明标量变量 "@XXX"...
-
using Model;
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Utility;namespace DAL
{
public class CommodityDAL
{
public bool EditCM(CommodityModel cm)
{
string sql = @"insert into Commodity(CommodityName, SortID, CommodityPrice, IsDiscount, ReducedPrice) values(@Name,@ID,@Price,@Discount,@RPrice)";
SqlParameter[] ps = {
new SqlParameter("@Name",cm.CommodityName),
new SqlParameter("@ID",cm.SortID),
new SqlParameter("@Price",cm.CommodityPrice),
new SqlParameter("@Discount",cm.IsDiscount),
new SqlParameter("@RPrice",cm.ReducePrice)
};return SqlHelper.ExecuteNonQuery(sql) > 0; } }
}
发生异常:
“System.Data.SqlClient.SqlException”类型的未经处理的异常在 System.Data.dll 中发生其他信息: 必须声明标量变量 "@Name"。
请问给位大神,这是怎么回事?断点查看
cm.CommodityName
cm.SortID
cm.CommodityPrice
cm.IsDiscount
cm.ReducePrice
都有相应的值!
为什么就传不进去呢?
解决方案
string sql = @"insert into Commodity(CommodityName, SortID, CommodityPrice, IsDiscount, ReducedPrice) values(@Name,@ID,@Price,@Discount,@RPrice)";
去掉字符串前面的@符号