Помогите С Кодом

28.06.2012
19
0
#1
Я обычно пишу на дельфи но мне понадобилась срочно написать маленькое приложение и я решил на фреймвоке, там удобнее, вот следуящая проблема
Dim con1 as new sqlclient.sqlconnection(....)
Con1.open()
Dim command as sqlcommand=con1.createcommand

Command.CommandText="SELECT*FROM SOMETABLE where percent ='0.000'"
Dim id as string = command.ExecuteScalar()

If string.IsnullorEmpty(id) then
Msgbox("this record doesn't exist")

Endif

Происходит ошибка потому что percent в таблице типа Decimal , стоит мне вместо процента поставит любую другую колонку код срабатывает без ошибки, а так выдает ошибку incorrect syntax near percent. А что делать в этой ситуации.
 

LuMee

Well-known member
02.05.2006
477
0
#2
Подозреваю, что в тексте запроса следует убрать одинарные кавычки вокруг 0.000 - это же не строка, а число.
 
28.06.2012
19
0
#3
Боюсь что ваши подозрения не оправдались когда я заменил процент другой колонкой, того же типа decimal , то код срабатывает, когда я сравнил в дизайне таблице эти колонки оказалась что у процента в названии записано [percent], мне кажется из за этих кавычек происходит ошибка. Интересно можно програмно определить что у колонки есть такие кавычки?
 

LuMee

Well-known member
02.05.2006
477
0
#4
Квадратными скобками обрамляются идентификаторы (в том числе названия колонок), чьи имена совпадают с ключевыми словами Transact-SQL. Чтобы не думалось, можно в тексте запроса все имена колонок/таблиц/вьюх/и т.п. заключать в квадратные скобки, т.е. запрос будет вида:
Код:
SELECT * FROM [SOMETABLE] WHERE [percent] = 0.0