Member 13268442 Ответов: 2

"Значение не может быть нулевым.\r\nparameter name: providerinvariantname"}, в форме C# windows, ошибка dbprovider factorie (dataprovider name) not null как исправить эти ошибки


public static DbCommand CreateCommand()
{ 
            //WebConfigReader 
            // Obtain the database provider name
            string dataProviderName = WebConfigReader.DbProviderName;
            // Obtain the database connection string
            string connectionString = WebConfigReader.DbConnectionString;
            // Create a new data provider factory
            DbProviderFactory factory = DbProviderFactories.GetFactory(dataProviderName);
            // Obtain a database specific connection object
            DbConnection conn = factory.CreateConnection();
            // Set the connection string
            conn.ConnectionString = connectionString;
            // Create a database specific command object
            DbCommand comm = conn.CreateCommand();
            // Set the command type to stored procedure
            comm.CommandType = CommandType.StoredProcedure;
            // Return the initialized command object
            return comm;
        }
    }
}


Что я уже пробовал:

я попытался изменить имя dbprovider и строку подключения как это исправить

2 Ответов

Рейтинг:
2

OriginalGriff

Посмотрите на сообщение об ошибке:

Value cannot be null.
parameter name: providerinvariantname

Это происходит из вашей БД и означает, что вы пытаетесь вставить или обновить столбец с нулевым значением в столбце, объявленном как NOT NULL.

Мы не можем это исправить: это ваша база данных и ваши данные! Либо разрешены значения NULL - в этом случае измените свою БД, либо нет - в этом случае очистите входные данные.
Мы ничего не можем сделать для вас...


Richard Deeming

Вы в этом уверены? :)

Насколько я могу видеть, ошибка исходит от DbProviderFactories.GetFactory метод, нет база данных. Это предполагает, что WebConfigReader.DbProviderName (что бы это ни было) возвращается null почему-то.

Рейтинг:
2

Richard Deeming

Сообщение об ошибке предполагает, что WebConfigReader.DbProviderName возвращается null Вам нужно будет отладить свой код, чтобы выяснить, почему.