aa类里做了一个方法
public static OleDbDataReader getdr(string sql)
{
OleDbDataReader dr = null;
try
{
conopen(); //打开数据库
cmd.CommandType = CommandType.Text;
cmd.CommandText = sql;
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch
{
dr.Close();
}
return dr;
}然后在另一页里调用
string sql = "select * from usetb where uid='"+sid+"'";
OleDbDataReader dr = aa.getdr(sql);
if (dr.Read()) //这里就出错了
{.... }
else
{.....}
调试时提示用户代码未处理InvalidOperationException
{"阅读器关闭时尝试调用 Read 无效。"}正常运行时提示
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。我发现好象第一次执行是可以执行的,但第二次执行就这样出错了
public static OleDbDataReader getdr(string sql)
{
OleDbDataReader dr = null;
try
{
conopen(); //打开数据库
cmd.CommandType = CommandType.Text;
cmd.CommandText = sql;
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch
{
dr.Close();
}
return dr;
}然后在另一页里调用
string sql = "select * from usetb where uid='"+sid+"'";
OleDbDataReader dr = aa.getdr(sql);
if (dr.Read()) //这里就出错了
{.... }
else
{.....}
调试时提示用户代码未处理InvalidOperationException
{"阅读器关闭时尝试调用 Read 无效。"}正常运行时提示
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。我发现好象第一次执行是可以执行的,但第二次执行就这样出错了
把参数去掉
{
OleDbDataReader dr = null;
try
{
conopen(); //打开数据库
cmd.CommandType = CommandType.Text;
cmd.CommandText = sql;
return dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch
{
throw new Exception("AA");
}
finally
{
dr.Close();
}
}
但是你代码里边又没有connction,所以不知道怎么帮你改了 conopen(); //打开数据库
cmd.CommandType = CommandType.Text;
cmd.CommandText = sql; cmd.Connection=楼主conneciton推荐写法:
OleDbConnection connection = new OleDbConnection(connectionString);
OleDbCommand command = new OleDbCommand(queryString, connection);
connection.Open();
OleDbDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
while(reader.Read())
{
Console.WriteLine(reader.GetString(0));
}
reader.Close();
{
OleDbConnection connection = new OleDbConnection(connectionString);
OleDbCommand command = new OleDbCommand(queryString, connection);
connection.Open();
OleDbDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
while(reader.Read())
{
Console.WriteLine(reader.GetString(0));
}
reader.Close();
//Implicitly closes the connection because CommandBehavior.CloseConnection was specified.
}