SqlException в С#

У меня есть функция, которая вызывает хранимую процедуру. Но он выдает исключение примерно так:

Произошло необработанное исключение типа «System.Data.SqlClient.SqlException» в System.Data.dll
Дополнительная информация: Недопустимое имя столбца «количество».

Недопустимое имя столбца "количество".
Недопустимое имя столбца "местоположение".
Недопустимое имя столбца "количество".
Недопустимое имя столбца "количество".
Недопустимое имя столбца "количество". ...

Я не понимаю, почему возникает это исключение, потому что хранимая процедура отлично работает в MSSMS.

Вот мой код для вызова хранимой процедуры:

public DataSet getDataTable_sp(string sp_name, SqlParameter[] p = null)
{
            DataSet ds = new DataSet();

            using (SqlConnection conn = new SqlConnection(Connstr))
            {
                SqlDataAdapter da = new SqlDataAdapter(sp_name,conn);
                da.SelectCommand.CommandType = CommandType.StoredProcedure;
                da.SelectCommand.CommandTimeout = 300;

                if (p != null)
                    for (int i = 0; i < p.Count(); i++)
                        da.SelectCommand.Parameters.Add(p[i].ParameterName, p[i].SqlDbType, p[i].Size).Value = p[i].Value;

                conn.Open();
                da.Fill(ds); // this is the line that the exception is thrown
                conn.Close();
            }

            return ds;
}

person JanLeeYu    schedule 01.04.2016    source источник
comment
Я думаю, что исключение понятно: Invalid column name 'quantity' означает, что нет столбца с именем «количество». Возможно, вы подключились к неправильной базе данных или вам нужно сначала создать таблицы.   -  person Jeroen van Langen    schedule 01.04.2016
comment
Проверьте правильность подключения   -  person Vivekh    schedule 01.04.2016


Ответы (2)


Я также сталкивался с той же ошибкой раньше, я думаю, проблема была в вашей хранимой процедуре. Попробуйте проверить все объявления, особенно ваши временные таблицы. Не знаю, сработает ли это с вашей стороны. Старайтесь избегать одинаковых имен временных таблиц. Просто попробуйте :)

person Werdo    schedule 01.04.2016
comment
да ты прав. У меня одинаковые имена временных таблиц в моих хранимых процедурах - person JanLeeYu; 01.04.2016
comment
Ах понятно. Я рад, что смог вам помочь :) - person Werdo; 28.03.2017

Проверьте имена столбцов, столбцы в хранимой процедуре должны совпадать с атрибутами, объявленными в вашей модели.

person MNF    schedule 01.04.2016