首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

WinForm中OleDbDataReader的有关问题

2013-08-01 
WinForm中OleDbDataReader的问题public OleDbDataReader ExecuteQueryReturnReader(string sql, string co

WinForm中OleDbDataReader的问题

  public OleDbDataReader ExecuteQueryReturnReader(string sql, string connStr)
        {
            OleDbConnection conn = new OleDbConnection();
            OleDbDataReader reader = null;
            try
            {
                conn = new OleDbConnection(connStr);
                conn.Open();

                OleDbCommand command = conn.CreateCommand();
                command.CommandText = sql;
                reader = command.ExecuteReader();
            }
            catch
            {
            }
            finally
            {
                if (conn != null)
                    conn.Close();
            }
            return reader;
        }      


以上是在下的代码,在项目中是这么使用的:

 string DataBase = "HCConfig.mdb";
            string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
                                    + Application.StartupPath + "//" + DataBase;
            ExecSql con = new ExecSql();


            string Sql= "select * form config where ID='sss'";
            OleDbDataReader p = con.ExecuteQueryReturnReader(strConnection, Sql);
            MessageBox.Show(p.FieldCount.ToString());


但是为什么会出现以下的错误?
其他信息: 未将对象引用设置到对象的实例。
每次执行到 MessageBox.Show(p.FieldCount.ToString());的时候总会出现这句话!!!!
[解决办法]
OleDbDataReader p = con.ExecuteQueryReturnReader(Sql,strConnection);//是不是传反了?

[解决办法]
 finally
            {
                if (conn != null)
                    conn.Close();
            }
连接已经在返回前关闭了.

这个不用自己写,已经有成熟的sqlhelper或oledbhelper.
[解决办法]
好吧,刚回复一看你的SQL语句,我现在很肯定是你的OleDbDataReader的实例P为null了,你的SQL语句错误:select * form config where ID='sss' 中的form写错了!是from!!!导致P为null,那么你后面的获取其属性值肯定是未将对象引用到对象的实例了!

热点排行