请问网上下载的AccessHelper如何使用DataReader?老是提示“未将对象引用设置到对象的实例。”

buyifly 2011-02-26 07:55:03
AccessHelper.cs部分代码

/// <summary>
/// 返回指定sql语句的OleDbDataReader对象,使用时请注意关闭这个对象。
/// </summary>
/// <param name="sqlstr"></param>
/// <returns></returns>
public static OleDbDataReader dataReader(string sqlstr)
{
OleDbDataReader dr = null;
try
{
openConnection();
comm.CommandText = sqlstr;
comm.CommandType = CommandType.Text;

dr = comm.ExecuteReader(CommandBehavior.CloseConnection);
}
catch
{
try
{
dr.Close();
closeConnection();
}
catch { }
}
return dr;
}

-------------------------------------
调用代码

string UserName = txt_UserName.Text;
string UserPassWord = txt_UserPassWord.Text;
string sqlDbsel = "select * from X_Users where UserName=@UserName";

OleDbDataReader dr = AccessHelper.dataReader(sqlDbsel);
if (dr.Read())
{
}

执行到if (dr.Read())时,就出错“未将对象引用设置到对象的实例。 ”

请问需要怎么才能调用呢?
谢谢
...全文
171 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
buyifly 2011-02-26
  • 打赏
  • 举报
回复
wuyq11兄弟能不能介绍个带参数的AccessHelper文件,谢谢:)
buyifly 2011-02-26
  • 打赏
  • 举报
回复
可是我用
string sqlDbsel = "select * from X_Users ";

OleDbDataReader dr = AccessHelper.dataReader(sqlDbsel);
if (dr.Read())

运行还是出现同样的错误


未将对象引用设置到对象的实例。
wuyq11 2011-02-26
  • 打赏
  • 举报
回复
使用oledbaprameter参数
OleDbParameter[] p = new OleDbParameter[1];
p[0] = new OleDbParameter("@UserName", OleDbType.VarChar);
p[0].Value = UserName;

public static int ExecuteSql(string SQLString, params OleDbParameter[] cmdParms)
{
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
using (OleDbCommand cmd = new OleDbCommand())
{
try
{
PrepareCommand(cmd, connection, null, SQLString, cmdParms);
int rows = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();

return rows;
}
catch (System.Data.OleDb.OleDbException E)
{
throw new Exception(E.Message);
}
}
}
}
OLE DB.NET Framework 数据提供程序使用标有问号 (?) 的定位参数,而不使用命名参数
机器人 2011-02-26
  • 打赏
  • 举报
回复
ls说的对。@UserName没有赋值。导致DataReader查出来等于null。
buyifly 2011-02-26
  • 打赏
  • 举报
回复
string sqlDbsel = "select * from X_Users where UserName=@UserName";

这里的@UserName怎么才能用到AccessHelper.dataReader(sqlDbsel);里,好像HELPER.cs dataReader里没有参数

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧