2015-09-28 1 views
0

Здравствуйте, у меня возникла проблема с моим запросом в этом коде. Я хочу запросить конкретные строки данных, где «CourseNo» = «CmpE 513»;Как исправить неправильный синтаксис рядом с ''?

string getText = this.SubjectList.Value; 

    //Connection String 
    connector.ConnectionString = "Data Source=keith;Initial Catalog=SAD;Integrated Security=True"; 

    query = "select CourseNo,CourseDescription,Units,Day,StartTime,EndTime,Room,Instructor,Amount,Status from assessmentform where CourseNo = " + getText + ""; 

    SubjectlistData = connector.ExecuteQuery(query); 
    SubjectlistTable = SubjectlistData.Tables[0]; 

Ошибка говорит неправильный синтаксис около «513»

В результате отображается как в междунар не строки.

В моем запросе SQL сервера я попытался это:

select CourseNo,CourseDescription,Units,Day,StartTime,EndTime,Room,Instructor,Amount,Status from assessmentform where courseno = 'CmpE 513'; 

И результат отображает данные.

Как добавить цитату ('') в мой код aspx в моей строке getText?

Я пробовал:

string getText = this.SubjectList.Value; 
query = "select CourseNo,CourseDescription,Units,Day,StartTime,EndTime,Room,Instructor,Amount,Status from assessmentform where CourseNo = " + 'getText' + ""; 

Но я получаю сообщение об ошибке, как это исправить?

+0

courseno поле таблица структура int и nvarchar? –

+0

нет данных типа courseno является varchar. –

+0

Рассмотрите возможность использования параметров; этот код, возможно, уязвим для SQL-инъекции. – jpw

ответ

1

Это как ваш выбор запрос выглядит

query = "select CourseNo,CourseDescription,Units,Day,StartTime,EndTime,Room,Instructor,Amount,Status from assessmentform where CourseNo = " + getText + ""; 

Проблема

В вышеописанном случае, если GetText имеет тип INT то, несомненно, выше запрос будет работать, но в вашем случае это строка, поэтому есть проблема, если не заключена в пределах цитата, как будто вы сталкиваетесь, когда она завершает линию в пробеле, а остальные символы не возвращаются ognized to sql компилятор.

string getText = this.SubjectList.Value; 
query = "select CourseNo,CourseDescription,Units,Day,StartTime, EndTime,Room, Instructor, Amount,Status from assessmentform where CourseNo = " + 'getText' + ""; 

Проблема

В вышеописанном случае вы пытаетесь вложить GetText в неправильном пути, это не правильный способ вложить строковый объект на этом он станет либо строкой, а чем строковый объект или приведет к ошибке времени компиляции.

Решение

Вы должны вложить свой GetText и сделать его строку

query = "select CourseNo,CourseDescription,Units,Day,StartTime,EndTime,Room,Instructor,Amount,Status from assessmentform where CourseNo = '" + getText + "'"; 
2

В "CmpE 513" содержит пробелы, оно должно быть заключено в одинарные

Как и выше, рекомендуется использовать следующий код:

query = "select CourseNo,CourseDescription,Units,Day,StartTime,EndTime,Room,Instructor,Amount,Status from assessmentform where CourseNo = '" + getText + "'"; 
+0

Один вопрос, тем не менее, этот предметный список является идентификатором тега select.Но когда он отображает результат, он не отображает выбранную опцию, которую я нажимаю, она отображает только первый выбранный параметр в моем коде. Пример: по умолчанию выбранный тег select имеет значение «CmpE 513», но когда я иду, выберите раскрывающийся список «CmpE 516» и нажмите «Продолжить». «CmpE 516» не отображался, а только «CmpE 513». –

+0

Перед выполнением запроса. Используйте следующий код «MessageBox.Show (query);» чтобы убедиться, что вы выполняете правильный запрос. Также попробуйте выполнить тот же запрос в своей базе данных и сравнить результат. Они оба должны быть одинаковыми. –

 Смежные вопросы

  • Нет связанных вопросов^_^