2016-09-12 2 views
-3

4 개의 열이 정의 된 Sql의 Student라는 테이블이 하나 있습니다. 첫 번째 열은 ID로 자동 증가되는 ID입니다. 내가 SQL에서 데이터를 삽입 할 때 다음 나는 다음과 같은 오류가 발생합니다 : '키워드'근처의 구문이 잘못되었습니다 "데 SqlCommandBuildersqlcommandbuilder 오브젝트를 사용하여 sql 서버에 새로운 행을 삽입하는 방법

protected void Button1_Click(object sender, EventArgs e) 
    { 
     string cs = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString; 
     SqlConnection con = new SqlConnection(cs); 

     string sqlQuery = "insert into Student values where = " + TextStudentID.Text; 

     SqlDataAdapter da = new SqlDataAdapter(sqlQuery, con); 

     SqlCommandBuilder builder = new SqlCommandBuilder(da); 

     DataSet ds = (DataSet)ViewState["dataset"]; 

     SqlCommand cmd = builder.GetInsertCommand(); 
     cmd.Parameters["@StudentName"].Value = TextStudentName.Text; 
     cmd.Parameters["@Gender"].Value = DropDownList1.SelectedValue; 
     cmd.Parameters["@Studentmarks"].Value = TextStudentName.Text; 

     cmd.ExecuteNonQuery(); 

     da.Fill(ds); 
    } 

감사의 목적에 미리

+0

에서 [INSERT 문에 대한 문서]를 읽을 수 (https://msdn.microsoft.com/en-us/library/ms174335.aspx) 당신은 어떤이는 것을 볼 수 없습니다하십시오 당신이하려고하는 것처럼'어디서나 '사용하십시오. – Filburt

답변

0

귀하의 삽입 구문이 올바르지 않습니다. 아이디가 자동으로 삽입됩니다 당신이 전달하는 다른 값으로 자동이-증가

string sqlQuery = "insert into Student (StudentName, Gender, Studentmarks) values (@StudentName, @Gender, @Studentmarks)"; 

:처럼 ID를 가정하면 기본 키 (정체성)입니다, 당신의 삽입 문이 있어야합니다.

코드를 약간 정리하고 적절하게 처리되도록 블록을 사용하여 SqlConnection을 넣어야합니다.

https://www.dotnetperls.com/sqldataadapter

그리고 당신은 당신의 명령에 그런 식으로 매개 변수를 추가하려는 경우

using (SqlConnection con = new SqlConnection(cs)) 
{ 
    // your code 
} 

, 당신은 AddWithValue를 사용하지만 잘못된 암시 적 타입 변환의 가능성을 인식 할 필요가있다.

예 :

cmd.Parameters.AddWithValue("@StudentName", TextStudentName.Text); 
관련 문제