Ошибка в запросе вставки - PullRequest
       4

Ошибка в запросе вставки

0 голосов
/ 20 февраля 2012

Я пытаюсь вставить в базу данных sql, но получаю сообщение об ошибке

enter image description here

Ниже приведен запрос:

 str2 = "Insert into [Snaps](Loc_city,Loc_state,Loc_country,Edu_Hist1,Work_Hist1) values (Loc_city= ' " + soap.data[i1].current_location.city.ToString() + "', Loc_state='" + soap.data[i1].current_location.state.ToString() + "', Loc_country='" + soap.data[i1].current_location.country.ToString() + "',Edu_Hist1='" + soap.data[i1].education_history[0].name.ToString() + "', Work_Hist1 ='" + soap.data[i1].education_history[0].school_type.ToString()+"')";
                     cmd = new SqlCommand(str2,con);
                     cmd.ExecuteNonQuery();

Пожалуйста, помогите

Ответы [ 4 ]

6 голосов
/ 20 февраля 2012

Вам не нужно указывать 'Loc_city = ...' в списке значений. Это должно быть просто:

 str2 = "Insert into [Snaps](Loc_city,Loc_state,Loc_country,Edu_Hist1,Work_Hist1) values ('" + soap.data[i1].current_location.city.ToString() + "', '" + soap.data[i1].current_location.state.ToString() + "', '" + soap.data[i1].current_location.country.ToString() + "', '" + soap.data[i1].education_history[0].name.ToString() + "', '" + soap.data[i1].education_history[0].school_type.ToString()+"')";
3 голосов
/ 20 февраля 2012

Предложение VALUES должно содержать только фактические данные, порядок и столбцы, в которые они вставлены, уже указаны в операторе INSERT.

ПРИМЕР:

INSERT INTO testTable (colA, colB, colC) VALUES («VarcharCol», 22, «VarcharColC»)

3 голосов
/ 20 февраля 2012

вам не нужно Loc_city= для значений.Просто передайте значения, разделенные запятыми

2 голосов
/ 20 февраля 2012

Удалите имена полей при вставке значений: С:

values (Loc_city= ' " + soap.data[i1].current_location.city.ToString() + "', Loc_state='" + soap.data[i1].current_location.state.ToString() + "', Loc_country='" + soap.data[i1].current_location.country.ToString() + "',Edu_Hist1='" + soap.data[i1].education_history[0].name.ToString() + "', Work_Hist1 ='" + soap.data[i1].education_history[0].school_type.ToString()+"')";

До:

values ('" + soap.data[i1].current_location.city.ToString() + "', '" + soap.data[i1].current_location.state.ToString() + "', '" + soap.data[i1].current_location.country.ToString() + "', '" + soap.data[i1].education_history[0].name.ToString() + "', '" + soap.data[i1].education_history[0].school_type.ToString()+"')";

Рассмотрите возможность использования SqlParameter с SqlCommand или просто string.format () для очистки запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...