2016-08-04 1 views
-1

Я пишу этот код, чтобы вставить данные в SQL с лицевой стороны, выведя значения из 2 таблиц в SQL. Я получаю сообщение об ошибке:Неверный синтаксис рядом с ')'. при вставке данных из нескольких таблиц

Incorrect syntax near ')'

Код:

try 
{ 
    sqlconn.Open(); 

    string PersonalDetailsquery = "insert into PersonalDetails(@FirstName,@LastName,@Email,@Phone,@Address)"; 

    SqlCommand sqlcomm1 = new SqlCommand(PersonalDetailsquery, sqlconn); 
    sqlcomm1.Parameters.AddWithValue("@FirstName", txtFirstName.Text); 
    sqlcomm1.Parameters.AddWithValue("@LastName", txtLastName.Text); 
    sqlcomm1.Parameters.AddWithValue("@Email", txtMailId.Text); 
    sqlcomm1.Parameters.AddWithValue("@Phone", txtPhoneNum.Text); 
    sqlcomm1.Parameters.AddWithValue("@Address", txtAddress.Text); 

    sqlcomm1.ExecuteNonQuery(); 

    sqlcomm1.Parameters.Clear(); 
    string LoginDetailsquery = "insert into LoginDetails(@Username, @Password, @ConfirmPassword, @[Hint Q1], @Answer1, @[Hint Q2], @Answer2, @[Hint Q3], @Answer3)"; 

    SqlCommand sqlcomm2 = new SqlCommand(LoginDetailsquery, sqlconn); 
    sqlcomm2.Parameters.AddWithValue("@Username", txtUserName.Text); 
    sqlcomm2.Parameters.AddWithValue("@Password", txtPassword.Text); 
    sqlcomm2.Parameters.AddWithValue("@ConfirmPassword", txtConfirmPsw.Text); 
    sqlcomm2.Parameters.AddWithValue("@[Hint Q1]", ddlHintQ1.SelectedItem.Text); 
    sqlcomm2.Parameters.AddWithValue("@Answer1", txtHintQ1.Text); 
    sqlcomm2.Parameters.AddWithValue("@[Hint Q2]", ddlHintQ2.SelectedItem.Text); 
    sqlcomm2.Parameters.AddWithValue("@Answer2", txtHintQ2.Text); 
    sqlcomm2.Parameters.AddWithValue("@[Hint Q3]", ddlHintQ3.SelectedItem.Text); 
    sqlcomm2.Parameters.AddWithValue("@Answer3", txtHintQ3.Text); 

    sqlcomm2.ExecuteNonQuery(); 
    Label1.Text = "data Inserted successfully"; 
} 
catch (Exception ex) 
{ 
    Label1.Text = ex.Message; 
    Label1.ForeColor = System.Drawing.Color.Red; 
} 
finally 
{ 
    sqlconn.Close(); 
} 
+0

Является ли это MySQL, SQLite или MSSQL? – FrankerZ

+1

@FrankerZ Использует ли 'SqlCommand' класс для MySQL? Разве у этого нет отдельного API ('MySqlCommand')? Пожалуйста, поправьте меня, если я ошибаюсь. – user3185569

+0

@ user3185569 Он может использовать пользовательский класс базы данных с базой данных, которую он написал сам. Без его тегов я не уверен – FrankerZ

ответ

2

Вы запрос должен иметь VALUES

string PersonalDetailsquery = "insert into PersonalDetails(here your columns) VALUES(@FirstName,@LastName,@Email,@Phone,@Address)"; 

.... 

string LoginDetailsquery = "insert into LoginDetails(here your columns) VALUES(@Username,@Password,@ConfirmPassword,@[Hint Q1],@Answer1,@[Hint Q2],@Answer2,@[Hint Q3],@Answer3)"; 
1

Вы неправильно SQL Синтаксис:

"insert into PersonalDetails VALUES (@FirstName,@LastName,@Email,@Phone,@Address)" 

И

"insert into LoginDetails VALUES (@Username,@Password,@ConfirmPassword,@[Hint Q1],@Answer1,@[Hint Q2],@Answer2,@[Hint Q3],@Answer3)" 

От w3schools:

It is possible to write the INSERT INTO statement in two forms.

The first form does not specify the column names where the data will be inserted, only their values:

INSERT INTO table_name 
VALUES (value1,value2,value3,...); 

The second form specifies both the column names and the values to be inserted:

INSERT INTO table_name (column1,column2,column3,...) 
VALUES (value1,value2,value3,...); 
+1

И я также предлагаю всегда ** указать ** столбцы, которые вы хотите вставить в свой оператор 'INSERT'. –

-1

Пожалуйста, проверьте оператор запроса снова:

Вы можете попробовать:

string PersonalDetailsquery ="INSERT INTO PersonalDetails(FirstName,LastName,Email,Phone,Address) 
values('"+txtFirstName.Text+"','"+txtLastName.Text+"','"+txtMailId.Text+"','"+txtPhoneNum.Text+"','"+txtAddress.Text+"')"; 
+2

Это ** ужасно плохое предложение ** - ** НЕ предлагайте код **, открытый ** для SQL-инъекции !! *** ВСЕГДА *** используйте параметризованные запросы - ** исключение! ** –

2

Неправильный SQL Синтаксис:

Попробуйте это;

INSERT INTO PersonalDetails (column1,column2,column3,...) VALUES (@FirstName,@LastName,@Email,@Phone,@Address); 

ИЛИ

INSERT INTO PersonalDetails VALUES (@FirstName,@LastName,@Email,@Phone,@Address); 
Смежные вопросы