使用oracle数据库  sql语句"Select * from zbb_userInfos where userName=@userName and userPassword=@userPassword"public static OleDbDataReader ExeDataReader(string olestring, OleDbTransaction stran, CommandType cmdType, string cmdText, params OleDbParameter[] param)
        {
            OleDbConnection conn = new OleDbConnection(olestring);
            if (conn.State != ConnectionState.Open)
            {
                conn.Open();
            }
            OleDbCommand cmd = Getcommand(conn, stran, cmdType, cmdText, param);//获得执行命令的准备方法
            return cmd.ExecuteReader(CommandBehavior.CloseConnection);
        }
关键是不是在于第一个形参,数据库链接字符串,conn.open()能过去
这是DAL的调用方法
  OleDbParameter[] param ={new OleDbParameter("@userName",user.UserName),
                                     new OleDbParameter("@userPassword",user.UserPassword)
                                    };
            OleDbDataReader reader = OracleHelper.ExeDataReader(OracleHelper.Oleconnstring, null, CommandType.Text, OleDb_haveData, param);

解决方案 »

  1.   

    断点调试下,看下执行的sql 语句
    放在sql 查询器中查询下,能不能查处数据
      

  2.   

    SQL语句没有问题,在查询器中将两变量换掉,可以查出来数据
      

  3.   

    使用oracle数据库 sql语句"Select * from zbb_userInfos where userName=@userName and userPassword=@userPassword"在使用Oracle的时候最好不要用select * ,至于你的问题我不是很清楚,但这个问题还是给你建议。
      

  4.   

    cmd.ExecuteReader(CommandBehavior.CloseConnection);
    这个不是很了解
    我一般直接写cmd.ExecuteReader();然后conn.Close();没用过楼主的方式