Проблема с использованием Dapper для вызова хранимой процедуры из C # - PullRequest
0 голосов
/ 20 сентября 2018

Я совершенно новичок в 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);
    }
}

Кто-нибудь знает, что мне здесь не хватает?

1 Ответ

0 голосов
/ 20 сентября 2018

Просто экранируйте имя sp, как вы делали бы в Management Studio:

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<> s.

...