sqlcon.ConnectionString = "server=.;database=test_2;uid=sa;pwd=yun900125";
            sqlcon.Open();
            sqlcmd.Connection = sqlcon;
            sqlcmd.CommandText = "insert into table_ID (ID,pwd) values ("+this.txtIDLogin.Text.ToString()+","+this.txtPwdLogin.Text.ToString()+") ";            sqlcmd.ExecuteNonQuery();
            sqlcmd.CommandText = "insert into table_sbujects(ID,class,fullname,number) values(" + this.txtIDLogin.Text.ToString() + "," + this.txtClassLogin.Text.ToString() + "," + this.txtNameLogin.Text.ToString() + "," + this.txtNumberLogin.Text.ToString() + ")";            sqlcmd.ExecuteNonQuery();
            sqlcon.Close();
上面红色部分里的Text,如果写的是数值,调试,没问题。但是如果输入字母,就会报错。难道varchar只能存数值???  不是应该是数字、字母、汉字都能存么??   

解决方案 »

  1.   

    不可能, 不仅能存字母, 还能存汉字呢
    你把生成的SQL语句列出来看看, 肯定代码有问题~~
      

  2.   

    不只能存数值哈,varchar是字符串型而且是可变长度的
      

  3.   

    字符型的前后要加'sqlcmd.CommandText = "insert into table_ID (ID,pwd) values ('"+this.txtIDLogin.Text.ToString()+"','"+this.txtPwdLogin.Text.ToString()+"')";  
      

  4.   


    估计你的情况跟第三个注释掉的语句的情况一样
    declare @TB table([pwd] varchar(3))insert @TB select 22
    insert @TB select '22'
    --insert @TB select aa
    insert @TB select 'aa'