我始终登陆不上去~ 用户名密码我都检查过了~ 绝对正确~ sql语句也在access的查询里试过了~ 没错,有返回的行~ 可是一运行总是登陆不上~ cmd.Executescalar()总是null  大家看看是怎么回事??      private void button1_Click(object sender, EventArgs e)
        {
            conn.Open();
            string sql = "SELECT * FROM userinformation WHERE userid='" + tbx_userid.Text + "' and userpassword='" + tbx_userpassword + "'";
            OleDbCommand cmd = new OleDbCommand(sql, conn)          
                       if (cmd.Executescalar()==null )
            {
                label4.Text = "用户名或密码错误,请重新输入";
            }
            else
            {
                Index1 index1 = new Index1();
                index1.ShowDialog();
            }
            conn.Close();
        }

解决方案 »

  1.   

    各位大大~ 帮帮忙啊 ~ 搞了半天~ 都出不来~ 
    系统也没报任何错
    conn也应该没什么问题~ 因为其他模块也是写同样的conn 都能连到数据库~ 
      

  2.   

    conn 写好过了~ 在这个事件外部写的~ 没什么问题的
    static string str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\VS2005_Projects\\SMS\\SMS\\SMS_database.mdb";
            OleDbConnection conn = new OleDbConnection(str);
      

  3.   

    在OleDbCommand cmd = new OleDbCommand(sql, conn)   ;后
    加一句:cmd.ExecuteNonQuery();
      

  4.   

    SELECT * FROM 
    建议不要用select *,换成count(*) 也比那个好.
      

  5.   

    我终于知道我错哪了~ sql语句里 tbx_userpassword  没加.text 害我搞了2个小时~ 以后真是要细心啊...谢谢楼上几位了
      

  6.   

    我刚看出来错在哪,回贴时,看出来你已经找到了,呵呵,就是SQL语句的问题,最后那个文本控件没有text属性啊string sql = "SELECT * FROM userinformation WHERE userid='" + tbx_userid.Text + "' and userpassword='" + tbx_userpassword + "'"; 
    另外我讲一下,我做登录的方法,首先我也是菜鸟,呵呵,大家一起讨论,
    大概讲下意思,也是用if判断,先在用户表里找出是否有符合帐号和密码的记录,如果有的话,给这个记录放在内存表里(datatable),既然是有记录了,就是if(记录数>0){登录成功}
    else{帐号或密码错误}
      

  7.   

    恩~ 8楼的count(*) 也可以~ 方法多种多样   大家一起进步