我对C#,T-SQL和Dapper完全陌生,并试图执行存储过程,但是我得到了
System.Data.SqlClient.SqlException:“ Josh”周围的语法不正确
我的存储过程很简单:
CREATE PROCEDURE [compName\Josh].[josh_test_insert]
@ssn FLOAT,
@gpa FLOAT
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO [compName\Josh].josh_testing
VALUES (@ssn, @gpa);
END
GO
josh_testing包含SSN和GPA两个字段。
C#代码为
public void InsertPerson(float ssn, float gpa)
{
using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(Helper.CnnVal("SampleDB")))
{
List<new_app> apps = new List<new_app>();
apps.Add(new new_app { ssn = ssn, gpa = gpa });
connection.Execute("compName\\Josh.josh_test_insert @ssn, @gpa",apps);
}
}
有人知道我在这里想念什么吗?
答案 0 :(得分:3)
只需像在Management Studio中那样转义sp的名称即可:
public void InsertPerson(float ssn, float gpa)
{
using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(Helper.CnnVal("SampleDB")))
{
connection.Execute("EXEC [compName\\Josh].[josh_test_insert] @ssn, @gpa", new { ssn = ssn, gpa = gpa });
}
}
并传递没有无用List<>
的参数。