2011-12-05 87 views
0

我正在嘗試在ms訪問數據庫中插入我的客戶端的用戶標識時出現錯誤。OLEDB中的溢出異常

我得到的錯誤是溢出。

當我試圖插入其獲取上述錯誤。

我正在使用這些代碼。

 OleDbCommand cmd = new OleDbCommand("insert into UserInfo " + "([firstname], [lastname], [gender], [occupation], [expirydate], [UserId], [phoneno]) " + " values('" + txt_FirstName.Text + "','" + txt_LastName.Text + "','" + cmb_Gender.Text + "','" + cmb_Occupation.Text + "','" + txt_expiryDate.Text + "','" + txt_HardDiskId.Text + "','" + txt_PhoneNo.Text + "');", con); 
     OleDbCommand cmd1 = new OleDbCommand("select * from UserInfo where (HardDiskId='" + txt_HardDiskId.Text + "')", con); 
     int temp = 0; 
     try 
     { 
      con.Open(); 
      string count = (string)cmd1.ExecuteScalar(); 
      if ((count == "") || (count == null)) 
      { 
       temp = cmd.ExecuteNonQuery(); 
       if (temp > 0) 
       { 
        MessageBox.Show("User ID of " + txt_FirstName.Text + " " + txt_LastName.Text + " has been added"); 
       } 
       else 
       { 
        MessageBox.Show("Record not added"); 
       } 
      } 
      else 
      { 
       MessageBox.Show("User ID of " + txt_FirstName.Text + " already exists. Try another user ID."); 
      } 
     } 
+0

您是否收到此錯誤?您是否可以發佈_exact_錯誤/異常消息? – Oded

+0

temp = cmd.ExecuteNonQuery();在這一行 –

+0

順便提一下,連接SQL的字符串不是一個好主意。您的代碼對[SQL注入](http://en.wikipedia.org/wiki/SQL_injection)開放。 – Oded

回答

1

除了從開放到SQL注入(你應該參數您的OleDbCommand),上一個問題首先想到的是您要存儲數據的。是否有任何文本字段有特殊字符或撇號的名稱,否則會預先終止您的嵌入....「」+ nextField +「'...」條目,並拋出平衡關閉

另.. 。不知道解析器是否挑剔或者不是......但是值之後的空格,在打開paren之前......「values(」to「values(」。

)第三,更可能的問題是如果它是一個日期字段,並且您試圖將其作爲文本進行輸入,則可能會導致數據類型轉換失敗。

+0

感謝您的幫助,我會牢記這一點 –