C# 使用DBC中的参数将数据插入SQL Server#
当我尝试将值插入SQL Server 2008 R2时,我得到一个错误[语法错误':'] 这是我定义的模型类:C# 使用DBC中的参数将数据插入SQL Server#,c#,stored-procedures,sql-server-2008-r2,syntax-error,sql-insert,C#,Stored Procedures,Sql Server 2008 R2,Syntax Error,Sql Insert,当我尝试将值插入SQL Server 2008 R2时,我得到一个错误[语法错误':'] 这是我定义的模型类: public class Company { [DBField("ID"), DBParameter(":ID")] public double ID { get; set; } [DBField("CCODE"), DBParameter(":CCODE")] public string CompanyCode { get; set; }
public class Company
{
[DBField("ID"), DBParameter(":ID")]
public double ID { get; set; }
[DBField("CCODE"), DBParameter(":CCODE")]
public string CompanyCode { get; set; }
[DBField("CNAME"), DBParameter(":CNAME")]
public string CompanyName { get; set; }
}
这是我的问题
string sql = @"INSERT INTO TESTDB.SMSGATEWAY_COMPANY(ID,CCODE,CNAME) VALUES (:ID, :CCODE, :CNAME)";
使用存储过程方法赋值后,使用以下执行方法
public override void ExecuteStiredProcedure(string procedureName, List<StoredProcedureInputParameters> paraList)
{
using (SqlCommand sqCommand = new SqlCommand())
{
sqCommand.Connection = base.DBConnection;
sqCommand.Connection.Open();
sqCommand.CommandType = CommandType.Text;
sqCommand.CommandText = procedureName;
foreach (StoredProcedureInputParameters p in paraList)
{
oracleCommand.Parameters.AddWithValue(p.ParamenterName, p.Value);
}
sqCommand.ExecuteNonQuery();
sqCommand.Connection.Close();
sqCommand.Parameters.Clear();
}
}
public override void executesteredprocedure(string procedureName,List paraList)
{
使用(SqlCommand sqCommand=new SqlCommand())
{
sqCommand.Connection=base.DBConnection;
sqCommand.Connection.Open();
sqCommand.CommandType=CommandType.Text;
sqCommand.CommandText=过程重命名;
foreach(参数列表中的StoredProcedureInput参数)
{
oracleCommand.Parameters.AddWithValue(p.ParameterName,p.Value);
}
sqCommand.ExecuteNonQuery();
sqCommand.Connection.Close();
sqCommand.Parameters.Clear();
}
}
执行查询时,我得到一个错误[语法错误':']
请给出解决方案。因为错误消息表明冒号未被识别为有效语法。TSQL使用@符号作为变量前缀 尝试使用查询:
INSERT INTO TESTDB.SMSGATEWAY_COMPANY(ID,CCODE,CNAME) VALUES (@ID, @CCODE, @CNAME)
。。并确保StoredProcedureInputParameters
中的参数名称也包含“@”符号作为前缀,而不是冒号。看