数据访问层DataOP.cs代码
// <summary>
/// 通用的数据库处理类,通过ado.net与数据库连接
/// </summary>
public class DataOP:IDisposable
{
// 连接数据源
private OleDbConnection conn;
/// <summary>
/// 打开数据库连接.
/// </summary>
private void ConOpen()
{
// 打开数据库连接
try
{
if (conn == null)
{
conn=new OleDbConnection("provider=Microsoft.jet.oledb.4.0;data source=C:\\Inetpub\\wwwroot\\ChengYu\\images\\cydb\\db.mdb ");
}
if (conn.State==System.Data.ConnectionState.Closed) conn.Open();
}
catch(Exception ex)
{
throw new Exception("数据库连接失败" + ex.Message );
} }
/// <summary>
/// 关闭数据库连接
/// </summary>
public void Close()
{
if (conn != null)
conn.Close();
} /// <summary>
/// 执行一个sql
/// </summary>
/// <param name="mySql"></param>
/// <returns>返回结果集的第一行第一列</returns>
public string ExecSql2TopOne(string mySql)
{
OleDbCommand myCmd=new OleDbCommand(mySql,conn);
myCmd.Connection=conn;
try
{
ConOpen();
Object myResult=myCmd.ExecuteScalar();
if(myResult==null)
return "";
else
return myResult.ToString();
}
catch(Exception ex)
{
return "";
throw new Exception("执行sql语句失败" + ex.Message);
}
}
数据操作层 UsersOP.cs 代码 #region 登陆验证 返回“”验证失败,否则成功
/// <summary>
/// 登陆验证
/// </summary>
/// <param name="userName">用户名</param>
/// <param name="password">密码</param>
/// <returns>返回用户ID</returns>
public string Login(string userName, string password)
{
string strSql; DataOP data=new DataOP(); strSql="SELECT Users.ID, Users.LoginName, Users.PassWord " +
" FROM Users " +
" WHERE (LoginName='" + userName + "') AND (PassWord='" + password + "')";
return data.ExecSql2TopOne(strSql);
}
#endregion表示层代码:
DataAccess.UsersOP Users=new DataAccess.UsersOP();
string UsersID=Users.Login(txtName.Text,txtPassWord.Text);当执行到数据访问层 Object myResult=myCmd.ExecuteScalar();时出错,
错误提示:"ExecuteScalar: Connection 属性尚未初始化。"
麻烦各位大侠帮我找找原因。
// <summary>
/// 通用的数据库处理类,通过ado.net与数据库连接
/// </summary>
public class DataOP:IDisposable
{
// 连接数据源
private OleDbConnection conn;
/// <summary>
/// 打开数据库连接.
/// </summary>
private void ConOpen()
{
// 打开数据库连接
try
{
if (conn == null)
{
conn=new OleDbConnection("provider=Microsoft.jet.oledb.4.0;data source=C:\\Inetpub\\wwwroot\\ChengYu\\images\\cydb\\db.mdb ");
}
if (conn.State==System.Data.ConnectionState.Closed) conn.Open();
}
catch(Exception ex)
{
throw new Exception("数据库连接失败" + ex.Message );
} }
/// <summary>
/// 关闭数据库连接
/// </summary>
public void Close()
{
if (conn != null)
conn.Close();
} /// <summary>
/// 执行一个sql
/// </summary>
/// <param name="mySql"></param>
/// <returns>返回结果集的第一行第一列</returns>
public string ExecSql2TopOne(string mySql)
{
OleDbCommand myCmd=new OleDbCommand(mySql,conn);
myCmd.Connection=conn;
try
{
ConOpen();
Object myResult=myCmd.ExecuteScalar();
if(myResult==null)
return "";
else
return myResult.ToString();
}
catch(Exception ex)
{
return "";
throw new Exception("执行sql语句失败" + ex.Message);
}
}
数据操作层 UsersOP.cs 代码 #region 登陆验证 返回“”验证失败,否则成功
/// <summary>
/// 登陆验证
/// </summary>
/// <param name="userName">用户名</param>
/// <param name="password">密码</param>
/// <returns>返回用户ID</returns>
public string Login(string userName, string password)
{
string strSql; DataOP data=new DataOP(); strSql="SELECT Users.ID, Users.LoginName, Users.PassWord " +
" FROM Users " +
" WHERE (LoginName='" + userName + "') AND (PassWord='" + password + "')";
return data.ExecSql2TopOne(strSql);
}
#endregion表示层代码:
DataAccess.UsersOP Users=new DataAccess.UsersOP();
string UsersID=Users.Login(txtName.Text,txtPassWord.Text);当执行到数据访问层 Object myResult=myCmd.ExecuteScalar();时出错,
错误提示:"ExecuteScalar: Connection 属性尚未初始化。"
麻烦各位大侠帮我找找原因。
解决方案 »
- 一个简单的问题,路过的大虾来帮看下
- 服务器不能运行有水晶报表的页面~
- html的TD标记的onclick事件的问题:这样写为什么单击没有任何反应呢?
- 如何在datalist里面合并单元格
- 邀高手调试一个C#开发的B/S结构的ERP系统!顶者有分
- C#的ASPX中怎样实现象QQ一样的导航按钮啊?
- DataGrid能否不显示表头?
- 一个简单问题,没分了,大家原谅!
- 无闪烁定时刷新页面数据如何实现?
- asp.net发布网站的时候出现, "发布遇到错误,未将对象引用设置到对象的实例。"
- 有难度哟!upload file using http and asp.net????
- 在使用DataList时的一个布局问题。
数据库链接成功了。
{
// 连接数据源
private OleDbConnection conn;
/// <summary>
/// 打开数据库连接.
------------------------------------------------
那句應該寫成 OleDbConnection conn=new OLeDbConnection();
讓conn初始化
try
{
ConOpen();
Object myResult=myCmd.ExecuteScalar();
if(myResult==null)
return "";
else
return myResult.ToString();
}
改成:
try
{
ConOpen();
myCmd.Connection=conn;
Object myResult=myCmd.ExecuteScalar();
if(myResult==null)
return "";
else
return myResult.ToString();
}
myCmd.Connection=conn;
try
{
ConOpen();//到了这里才初始化吧?
Object myResult=myCmd.ExecuteScalar();
if(myResult==null)
return "";
else
return myResult.ToString();
}
这句要放在ConOpen()函数执行之后
// 连接数据源
private OleDbConnection conn=new OleDbConnection("provider=Microsoft.jet.oledb.4.0;data source=C:\\Inetpub\\wwwroot\\ChengYu\\images\\cydb\\db.mdb ");
感谢jFresH_MaN(十一月的萧邦-夜曲)。
感谢所有热心的大侠门