2016-08-14 4 views
0

я не смог найти эту ошибку в моем кодеобнаружения ошибок, я не могу найти его помочь мне

Error: System.Data.SqlClient.SqlException (0x80131904): Incorrect syntax near 'Name'.

try 
    { 
     SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["UserData_DB"].ConnectionString); 

     string insert = "INSERT INTO UserData(First Name,Last Name,Father Name,CNIC NO,Gender,Religion,Address,City, Cell Number, Email) VALUES (@fName,@lName,@fathName,@cnicNo,@gender,@religion,@address,@city,@cellNumber,@email)"; 
     SqlCommand com = new SqlCommand(insert, con); 
     com.Parameters.AddWithValue("@fName", TextBoxfName.Text); 
     com.Parameters.AddWithValue("@lName", TextBoxlName.Text); 
     com.Parameters.AddWithValue("@fathName", TextBoxFatherName.Text); 
     com.Parameters.AddWithValue("@cnicNo", TextBoxcnicNo.Text); 
     com.Parameters.AddWithValue("@gender", RadioButtonList1.SelectedItem.Value.ToString()); 
     com.Parameters.AddWithValue("@religion", RadioButtonList2.SelectedItem.Value.ToString()); 
     com.Parameters.AddWithValue("@address", TextBoxAddress.Text); 
     com.Parameters.AddWithValue("@city", DropDownList1.SelectedValue.ToString()); 
     com.Parameters.AddWithValue("@cellNumber", TextBoxCellNumber.Text); 
     com.Parameters.AddWithValue("@email", TextBoxEmail.Text); 

     con.Open(); 
     com.ExecuteNonQuery(); 
     con.Close(); 
    } 
    catch (Exception ex) 
    { 
     Response.Write("Error: " + ex.ToString()); 
    } 
+0

имена столбцов не могут содержать пробелы! Если у вас есть столбцы с пробелами в них (на самом деле плохая идея), вы должны использовать ** квадратные скобки вокруг них: 'INSERT INTO UserData ([Имя], [Фамилия], [Имя отца]. .... ' –

+0

Столбец в sql не должен быть назван двумя словами. Так что либо его имя_имя, либо firstName или что-то подобное. – thsorens

ответ

1

Ваши имена столбцов в вставки пробелов и если имена столбцов имеют пробелы нужно окружить их в квадратные скобки [], как это:

INSERT INTO Names([First Name],[Last Name])VALUES('First Name 1','Last Name 1') 

В идеале имена столбцов в SQL не должны иметь места, я бы рекомендовал переименовать их, как FirstName, LastName e.t.c

+0

Я получил смысл, спасибо человеку –

0

вы должны положить attributs тха содержать пространство в []

"INSERT INTO UserData([First Name],[Last Name],[Father Name],CNIC NO,Gender,Religion,Address,City, Cell Number, Email) VALUES (@fName,@lName,@fathName,@cnicNo,@gender,@religion,@address,@city,@cellNumber,@email)";