2013-04-18 12 views
1

내 SQl 데이터베이스에 데이터를 삽입하려고하면 다음 오류가 발생합니다. SqlCeException 처리되지 않았습니다 : 쿼리를 구문 분석하는 동안 오류가 발생했습니다. 테이블 customerinfo에서 데이터를 검색하는 코드의 내 라인 [토큰 라인 수 = 1, 토큰 라인) = 토큰 오류 = 52 오프셋]쿼리를 구문 분석하는 동안 오류가 발생했습니다. [토큰 라인 번호 = 1, 토큰 라인 오프셋 = 52, 토큰 오류 = =]]

SqlCeConnection con = new SqlCeConnection("Data Source = ward.sdf;password=wardrobe"); 
con.Open(); 
SqlCeCommand com = con.CreateCommand(); 
com.CommandText= "select name from customerinfo where [id] =" + textBox1.Text; 
SqlCeDataReader reader = com.ExecuteReader(); 
reader.Read(); 
textBox2.Text = reader.GetValue(0).ToString(); 

내가 데이터베이스에서 데이터를 얻을에 넣어 노력하고있다 텍스트 상자 이 오류는 분명히 5 행에 있습니다.

+0

에 대한 울부 짖는 링크를 참조하십시오 com.CommandText이 = '+ textBox1.Text + "" "여기서 [ID] = customerinfo에서 이름을 선택"'; – zelmarou

+0

필드 ID는 어떤 종류의 데이터 유형입니까? – Steve

답변

0

필드 ID에 대한 데이터 유형을 모르면 정답을 제시하기가 어렵습니다. 그러나이 분야는 다음

com.CommandText= "select name from customerinfo where id [email protected]"; 
com.Parameters.AddWithValue("@id", textBox1.Text); 
SqlCeDataReader reader = com.ExecuteReader(); 
if(reader.Read()) 
    textBox2.Text = (!reader.IsDBNull(reader.GetOrdinal("name")) ? reader[0].ToString() : string.Empty); 
0

내가 비주얼 스튜디오 2008을 사용하고 내 대상 장치가 주춤 장치로 코딩해야 텍스트 유형이라고 가정하면.

SQL Server 데이터베이스에 값을 삽입하는 동안 "쿼리 오류 구문 분석 [토큰 줄 번호 = 1 토큰 줄 오프셋 = 29 토큰 오류 = 1]"오류가 발생했습니다.

After 많은 흔적 나는 실제로 나의 실수가 어디에 있는지 알았다. 이전에 열 이름을 지정하는 동안 "Ch 1", "Ch 2"와 같이 지정했습니다. 방금 ​​열 이름을 변경하여 "Ch1"및 "Ch2"처럼 만들었습니다. 즉, 공간을 제거하고 작동했습니다.

여기

private void btnInsert_Click(object sender, EventArgs e) 
     { 
      SqlCeCommand cmd = con.CreateCommand(); 
      cmd.CommandText = "INSERT INTO Tb (Ch1, Chl2) VALUES (?, ?)"; 

      cmd.Parameters.Add(new SqlCeParameter("p1", SqlDbType.NText)); 
      cmd.Parameters.Add(new SqlCeParameter("p2", SqlDbType.Int)); 
      cmd.Parameters["p1"].Size = 50; 

      cmd.Prepare(); 
      cmd.Parameters["p1"].Value =textBox1.Text; 
      cmd.Parameters["p2"].Value =textBox2.Text; 
      cmd.ExecuteNonQuery(); 
      cmd.Parameters.Clear(); 
      displayTable(); 

     } 
    private void displayTable() 
     { 
      SqlCeCommand cmd = new SqlCeCommand("SELECT * FROM Tb", con1); 
      SqlCeDataReader reader = cmd.ExecuteReader(); 
      DataTable table = new DataTable(); 
      table.Columns.Add("Ch1", typeof(int)); 
      table.Columns.Add("Ch2", typeof(string)); 

      while (reader.Read()) 
      { 
       table.Rows.Add(reader.GetInt32(0), reader.GetString(1)); 
      } 
      reader.Close(); 
      dataGrid1.DataSource = table; 


     } 

그것은 당신을 도울 것입니다 희망 내 작업 코드입니다.

는 대신을 시도 할 수 있습니다 자세한 내용 http://technet.microsoft.com/en-us/library/aa226134%28v=sql.80%29.aspx

관련 문제