错误提示很明显
第49行
错误原因是有一个参数没有赋值
从报错看
你的sql有问题

解决方案 »

  1.   

    确认数据库有没有Usertight字段,再确认Usertight的类型是数值还是字符串
      

  2.   

    查一下:一个是登陆表login有没有usertight这个字段,一个是学生表stu里有没有userright这个字段,
      

  3.   

    当抛出异常时,你至少应该调试 str 中是什么值。把它贴出来,才知道到底有什么参数?为什么需要指定值?
      

  4.   


    你自己自欺欺人地 try....catch了,试图带病工作,还怎么能够调试呢?
      

  5.   

    程序开发,就是要找到各种bug,让程序迟早要垮掉的异常今早表现出来。当你把几百个bug修改过后,并且每一次发现bug的过程都能够在下一次发布程序之前先“回归测试”多遍以后,程序才有了质量。我们看一个程序员是否有能力,首先是观察其调试的方法(调试时是否有能力),而不是看他能从网上搜索到多少个代码段子抄下来。try....catch 只有在release版本(向生产环境发布产品)时采用到,通常都会使用“条件编译”或者“Conditional标签”来屏蔽掉那些语句。不但在我们自己的机器上要保持保持debug,而且就算是发布到测试环境时也要保持debug(而不是release)。在你学习编程、一步一步学习知识的过程中,如果你的老师没有教你调试,而是教你写 try...catch,这其实是一种蒙骗。
      

  6.   

    usertight 总感觉你是不是这个字段写错了?你看了吗
      

  7.   

    嗯,我看靠谱!
    在每一个sql字符串下一行上打上断点,程序执行到断点处,鼠标放到string变量上,把sql语句弄出来执行一下。
      

  8.   

    嗯,我看靠谱!
    在每一个sql字符串下一行上打上断点,程序执行到断点处,鼠标放到string变量上,把sql语句弄出来执行一下。
     恩,按说字段名应该是一样的,不管是那个表。。感觉应该是userright,不应该是usertight
      

  9.   

    感谢各位。代码问题是手误打错了。关键问题是Access的问题。。问题已经解决了
      

  10.   

    最好设置下断点,看看执行前的sql和参数。目测
    string str = "select * from login where Usertight='" + this.textname.Text.Trim() + "'"; 这里的引号多了。