string account = "select max(brrowednum) from brrowinfo where readernum='" + this.textBox1.Text + "'";
OleDbCommand cmd3 = new OleDbCommand(account, cnn);
OleDbDataReader rdr3 = cmd3.ExecuteReader();
rdr3.Read();
string account1 = rdr3[0].ToString();
                    
int i = Convert.ToInt32(account1);数据库中brrowednum为数字类型的,为什么这个语句在调试的时候提示:输入的字符串的格式不正确。
各位帮帮忙啊。

解决方案 »

  1.   

    string account = "select max(brrowednum) from brrowinfo where readernum=" + this.textBox1.Text + "";
    OleDbCommand cmd3 = new OleDbCommand(account, cnn);
    OleDbDataReader rdr3 = cmd3.ExecuteReader();
    rdr3.Read();
    string account1 = rdr3[0].ToString();
        
    int i = Convert.ToInt32(account1);
      

  2.   

    '" + this.textBox1.Text + "'单引号去掉就OK了
      

  3.   

    brrowednum是否带小数点了?不是整型吧!
      

  4.   

    brrowednum如果不是整型的不要转成string再转整1. int i=Convert.ToInt32(idr3[0]); 如果不行看22.string account1 = rdr3[0].ToString();
    if(account1 =="")//...没值如果不行看33.string account1 = rdr3[0].ToString();
    if(account1 !="")
    {
      double d = Convert.ToDouble(account1);
    int i=(int)d;
    }
      

  5.   

    得到的account1的值为空,this.textBox1.Text 是文本类型的,应该不能把单引号去掉的吧?
    关键是当字符串的值为空的时候,怎么把它转换为0。
      

  6.   

    string account = "select max(brrowednum) from brrowinfo where readernum='" + this.textBox1.Text + "'";
    中readernum如果是INT型的话的话,就去掉‘ ’,正确结果是:
    ring account = "select max(brrowednum) from brrowinfo where readernum=" + this.textBox1.Text + " ";
      

  7.   

    int i=0;
    try{
    i = Convert.ToInt32(account1);
    }catch{}
      

  8.   


    ↑this.textBox1.Text==""?"0":this.textBox1.Text
      

  9.   

    最终结果string account = "select max(brrowednum) from brrowinfo where readernum=" + this.textBox1.Text==""?"0":this.textBox1.Text + "";
      

  10.   

    不是,是account1的值为空啊。我已经解决了,直接把i赋值为0.就行了。