2015-03-02 5 views
0

Мне нужно обновить данные в определенной строке базы данных SQL Server CE по мере необходимости. Но я получаю сообщение об ошибкеОшибка анализа запроса из программы C# на SQL Server CE

Был ошибка разбора запроса [Токен номер строки = 1, маркер линии смещения = 31, Token ошибочный = Имя]

Мой запрос:.

"Update MembersTable set First Name='" + txtFirstName.Text + 
    "', Surname='" + txtSurname.Text + 
    "', Middle Name='" + txtMiddleName.Text + 
    "',Home Address='" + txtAddress.Text + 
    "',Date Of Birth='" + dtpDOB.Text + 
    "',Home Phone No='" + txtHomePhone.Text + 
    "',Mobile No='" + txtMobilePhone.Text + 
    "',Email='" + txtEmail.Text + 
    "',Profession='" + txtProfession.Text + 
    "',Cell Leaders Name='" + txtCellLeader.Text + 
    "' Where ID='" + DC.ID + "'";" 

Что я делаю неправильно?

+0

[SQL Injection предупреждение] (http://msdn.microsoft.com/en-us/library/ms161953%28v = sql.105% 29.aspx) - вы должны ** не ** объединить свои SQL-запросы - используйте ** параметризованные запросы **, чтобы избежать SQL-инъекции –

ответ

1

Похоже, что имена ваших столбцов содержат пробелы. Чтобы справиться с этим, вы хотите заключить имя столбца с помощью квадратных скобок [ ]

"Update MembersTable set [First Name]='" + txtFirstName.Text + "',Surname='" + txtSurname.Text + "',[Middle Name]='" // ... 
+0

Большое спасибо. Это сработало.. –