2010-08-11 3 views
1

Я пытаюсь вставить значение в Databse, как это:Вставить в базе данных MySQL

command.CommandText = "INSERT INTO mail('" + s2[0] + "') values" + "('" + s2[1] + "')"; 

s2 [0] содержит имя поля в то время как s2 [1] содержит значение. Я хочу упомянуть, что строка, содержащаяся в s2 [0], точно совпадает с именем поля из таблицы.

В чем проблема?

PS: Я также хотел бы знать это исключение, если в таблице нет поля для соответствия s2 [0].

ответ

1

просто удалить дополнительный 'из строки после того, как почта

command.CommandText = "INSERT INTO mail(" + s2[0] + ") values" + "('" + s2[1] + "')"; 

попробовать использовать SQL команду с sqlParameter

1

Вы пытались процитировать имя поля с апострофами. Не делайте этого - это не значение, это часть самого SQL. Вам также не хватает пробела между «значениями» и открывающей скобкой коллекции значений. Это может или не может вызвать проблемы - не уверен. Например, в настоящее время ваша вставка может быть что-то вроде:

INSERT INTO mail('name') values('jon') 

вместо

Вы также должны использовать параметризованный запрос, чтобы избежать атак SQL-инъекции. Это трудно сделать для имени поля, но вы обязательно должны сделать это для значения. Надеемся, что имя поля не исходит от пользователя, чтобы начать с него.

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