这个错误提示不是一开始出现了
一个手持机上 扫描条码,判断 是否已输入,未输入就执行插入,当正常插入10几条记录,就跳出错误
“未处理的FormatException”
ExecuteScalar 返回的Objet,是不是强制转换格式有问题?int i = int.Parse(obj.ToString());
string sqlcount = "select count(item_no) from mb_xs_detail where sheet_no='" + this.Name + "' and  item_no='" + this.textBox1.Text + "'";
                SQLCEWrapper cetest = new SQLCEWrapper();
                int i = int.Parse(cetest.ReObjectvalue(sqlcount).ToString());                if (textBox1.Text == "")
                {
                    MessageBox.Show("请输入条码");
                    this.textBox1.Focus();
                }                else if (i != 0)
                {
                    MessageBox.Show("该条码已存在");
                    this.textBox1.Text = "";
                    this.textBox1.Focus();
                }
调用的方法
 public object ReObjectvalue(string p_strSQL)
        {
            //int i=int.Parse(obj.ToString())
            //String strVal = (String)obj;            SqlCeConnection conn;
            SqlCeCommand cmd;
            
                        try
            {
                // 初始化出一个新的数据库连接 
                conn = new SqlCeConnection(LocalConnection);                // 建立数据库连接 
                conn.Open();                // 初始化一个新的命令 
                cmd = new SqlCeCommand(p_strSQL, conn);             object value= cmd.ExecuteScalar();                               // 清除 
                //cmd.Dispose();
                //conn.Dispose();
             return value;            }
            catch (SqlCeException e)
            {
                MessageBox.Show(e.Message.ToString());
                return false;
            }
           
        }
       

解决方案 »

  1.   

    现在出现异常, 你可以查看 cetest.ReObjectvalue(sqlcount)此时的值,这个错误就是格式不正确的,具体可以参考msdn:http://msdn.microsoft.com/zh-cn/library/b3h1hf19(v=vs.90).aspx
      

  2.   


    你把 int i = int.Parse(cetest.ReObjectvalue(sqlcount).ToString());分两部分,这样不好看。
    比如:
    object obj = cetest.ReObjectvalue(sqlcount);//
    int i = int.Parse(obj.ToString());//如果这行有异常,就好看一些了
      

  3.   

    错误的地方你都找到了 ,设置下监测对象  看一下具体的值 是不是null
      

  4.   

     object value = cmd.ExecuteScalar();  
    if (value == null || value == DBNull.Value)
    加上判断就好