Исключение аргумента в методе DeriveParameters - PullRequest
0 голосов
/ 20 июля 2010
Dim id as integer = 1
Dim command as sqlcommand
Dim reader as idatareader

command = db.GetSqlStringCommand("select id, image, caption from profile where id = @id and image IS NOT NULL Order By NEWID()")
db.AddInParameter(command, "@id", DbType.Int32, id)
reader = db.ExecuteReader(Command)

Код выдает ошибку, которую я никогда раньше не видел ....

Ошибка SqlCommand.DeriveParameters, поскольку значение свойства SqlCommand.CommandText является недопустимым именем из нескольких частей "/ port: 4544 / путь: "C: \ sitepath" / vpath: "/ sitepath" ", неверное использование кавычек.

Как исправить эту ошибку.

Ответы [ 3 ]

0 голосов
/ 20 июля 2010

Похоже, код не работает на более глубоком уровне, чем код, который вы опубликовали.Я получил аналогичную ошибку из SQLServer Management Studio, когда не правильно определил путь к моей БД.Как вы настраиваете объект 'db'?

Какая у вас строка подключения?(Без пароля!: -))

Ошибка явно связана с неправильно сформированной строкой в ​​терминах позиций кавычек.Знаете ли вы, где entlib создает эту строку и как ее части, такие как "C: \ sitepath", отображаются в кавычках, а не добавляются в виде строковых литералов?

Интересно, есть ли где-нибудь объявление типа

Dim sRootPath As String = """C:\sitepath"""

.., которое приводит к вставке кавычек в составную строку.

0 голосов
/ 20 июля 2010

Я не знаю об ошибке, но порядок по NEWID () меня немного беспокоит.С newid () SQLServer вызывает функцию newid () для каждой строки в вашем наборе данных.

0 голосов
/ 20 июля 2010

Я никогда не видел эту ошибку, но, возможно, эта ссылка помогает: http://entlib.codeplex.com/Thread/View.aspx?ThreadId=60513

"Что это за версия entlib? В 4.1 нет перегрузки для ExecuteReader, который принимает оператор SQL, есть тот,строка, но это должно быть имя хранимой процедуры. Возможно, вы используете эту перегрузку, но я не уверен, так как я получаю другую ошибку, если я передаю SQL-оператор "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...