简体   繁体   English

')'附近的语法不正确。 从多个表插入数据时

[英]Incorrect syntax near ')'. when inserting data from multiple tables

I'm writing this code to insert the data into SQL from front side by deriving the values from 2 tables in SQL. 我正在编写此代码,以通过从SQL中的2个表派生值来从正面将数据插入SQL。 I'm getting an error: 我收到一个错误:

Incorrect syntax near ')' ')'附近的语法不正确

Code: 码:

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();
}

You query must have VALUES 您查询的VALUES必须为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)";

Wrong SQL Syntax: 错误的SQL语法:

Try this; 尝试这个;

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

OR 要么

INSERT INTO PersonalDetails VALUES (@FirstName,@LastName,@Email,@Phone,@Address);

You have a wrong SQL Syntax: 您的SQL语法错误:

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

And

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

From w3schools : w3schools

It is possible to write the INSERT INTO statement in two forms. 可以用两种形式编写INSERT INTO语句。

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,...);

Please check your query statement again: 请再次检查您的查询语句:

Can you try : 你能试一下吗 :

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM