Я пытаюсь выполнить ORDER BY функции в следующей функции поиска:Поисковый фильтр упорядочить по функции не работает
public DataSet SearchTable()
{
string sql1 = "SELECT * from dbo.Documents1 order by Received_Date";
bool flag = false;
if (!txtRef.Text.Equals(""))
{
if (flag == false)
{
sql1 = sql1 + " where Ref LIKE N'%" + txtRef.Text + "%'";
flag = true;
}
else
{
sql1 = sql1 + " and Ref LIKE N'%" + txtRef.Text + "%'";
}
}
if (!txtSubject.Text.Equals(""))
{
if (flag == false)
{
sql1 = sql1 + " where Subject LIKE N'%" + txtSubject.Text + "%'";
flag = true;
}
else
{
sql1 = sql1 + " and Subject LIKE N'%" + txtSubject.Text + "%'";
}
}
Я получаю следующее сообщение об ошибке:
Incorrect syntax near the keyword 'where'.
Любая идея, как исправить Это? Заранее спасибо.
кстати. вы можете проверить пустую строку с помощью string.IsNullOrEmpty http://msdn.microsoft.com/en-us/library/system.string.isnullorempty.aspx –
Это только я или это кричит SQL Injection ... кто-нибудь? – Jakub
Вместо всех повторных проверок флагов вы можете создать список условий в виде отдельных строк, затем (как только все будет сделано) 'string.Join' с ними и' 'как разделитель и префикс' «ГДЕ». Вы также можете изучить параметры одновременно. –