C# 使用DBC中的参数将数据插入SQL Server#

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; }

当我尝试将值插入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; }

    [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
中的参数名称也包含“@”符号作为前缀,而不是冒号。看