none
Почему я не могу передать 0 как значение SQL параметра в ADO.NET? RRS feed

  • Общие обсуждения

  • При добавлении параметров в SqlCommand объект, если значение параметра 0 (ноль), то он рассматривает, как параметр, которому не было присвоено какое-либо значение (может быть null) и после вызова command.ExecuteReader() .Net сгенерирует исключение.

    Решение этого:

    Когда вы указываете Object в качестве значения параметра, SqlDbType определяется из .NET Framework типа этого Object. Будьте осторожны когда используете перегрузку конструктора SqlParameter для указания числовых значений. Потому что перегрузка принимает значения типа Object и вы должны преобразовать числовое значение в Object, когда значение равно 0. Ниже представлен пример:

    Parameter = new SqlParameter("@pname", Convert.ToInt32(0));
    

    Если вы не выполните преобразование, то компилятор предполагает, что вы вызываете SqlParameter (string, SqlDbType) перегрузку конструктора.

    SqlParameter - конструктор (String, Object)

     


    Для связи [mail]
    8 апреля 2011 г. 11:56