gpt4 book ai didi

c# - 在C#中使用DbParameter将数据插入SQL Server

转载 作者:行者123 更新时间:2023-12-03 08:05:13 25 4
gpt4 key购买 nike

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

执行查询时,出现错误[语法错误':']

请为此提供解决方案。

最佳答案

如错误消息所示,冒号未被识别为有效语法。 TSQL使用@符号作为变量前缀。

尝试使用查询:

INSERT INTO TESTDB.SMSGATEWAY_COMPANY(ID,CCODE,CNAME) VALUES (@ID, @CCODE, @CNAME)

..并确保 StoredProcedureInputParameters中的参数名称还包含“@”符号作为前缀,而不是冒号。参见 example in msdN

关于c# - 在C#中使用DbParameter将数据插入SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47064226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com