2011-12-05 45 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

感谢您的帮助,我会牢记这一点 –