string sql="SELECT ID, 姓名, 性别, 学号, 密码, 联系方式, 身份证号, 出生日期 FROM student WHERE (学号 =@xx);SqlCommand cmd=new SqlCommand(cmd,Conn);
SqlParameter p=new SqlParameter("@xx",SqlDataType.Varchar);
p.Value=textBox1.Text;
cmd.Parameters.Add(p);cmd.ExecuteReader();

解决方案 »

  1.   

    失败的错误就是无法获取学号为11的学生,可是我在textBox1里已经输了11了...
      

  2.   

    string query="SELECT ID, 姓名, 性别, 学号, 密码, 联系方式, 身份证号, 出生日期  FROM student WHERE 学号 = '"+textBox1.text.trim()+"'";不需要什么括号   
      

  3.   

    2楼的方法貌似不行....我是在J#环境下编的,我import java.sql.*后再输入你那个语句会提示错误,SqlCommand没有这个函数或方法....
    J#里自带了一个查询编辑器,是图形化的,它会自动添加代码...只是WHERE后的要自己加进去我WHERE (学号 = '11')就可以找到学号为11的学生
    但是WHERE (学号 = '"+textBox1.get_Text()+"')等返回的都是NULL,而我textBox1里已经输入了11
      

  4.   

    段点,跟踪,把程序的sql ,在查询分析器里执行下,就知道原因了
      

  5.   

    用存储过程吧,拼写sql是很不安全的
      

  6.   

    肯定是数据类型的错误,自己看看数据库型
    get_Text()这个东西我怎么没见过。自己写的吗
      

  7.   


    import java.sql.sqlClient;试试
      

  8.   

    而且,你原来的sql语句是错误的!应该是这样的:
    SELECT ID, 姓名, 性别, 学号, 密码, 联系方式, 身份证号, 出生日期    
    FROM student    
    WHERE 学号 = '"+this.textBox1.get_Text()+"'";
    不过这样容易被注入,还是加参数的比较安全!
      

  9.   

    而且import java.sql.后面就没有sqlClient这个东东....
      

  10.   

    还有,我的编程环境是J#,它几乎全是图形化操作,自己几乎不用加代码........截图里WHRER以上的所有代码是它自动生成的,WHERE (学号='11')是我自己添加的,运行后通过了 
    改成WHERE (学号='"+textBox1.get_Text()+"')就不行了,我估计这里把"+textBox1.get_Text()+"整个当成一个字符串来判断了,也就是它根本没有去读取Form1.textBox1里的内容~~