日期:2014-5-19 浏览次数:20303次

我使用C#+SQL 出现一个错误 帮忙给我看看 谢谢啦
小弟用C#编写了一个人事管理系统   在定义类的时候出现一个问题,不知道怎么解决,希望大家多帮棒小弟啦!小弟感激不尽!

using   System;
using   System.Data   ;
using   System.Data.SqlClient;
using   System.ComponentModel;

namespace   人力资源管理系统
{
///   <summary>
///   DataBase   的摘要说明。
///   </summary>
public   class   DataBase   :   IDisposable
{
public   SqlConnection   SqlConn;
public   static   string   sConn   =   "Persist   Security;Integrated   Security   =   SSPI;database=master;server=localhost;Connect   Timeout=30 ";

public     void   Dispose()
{
Dispose(   true   );
GC.SuppressFinalize(   true   );
}

protected   void   Dispose(   bool   disposing   )
{
if   (   disposing   !=   true   )
{
return;
}
if   (   SqlConn   !=   null   )
{
SqlConn.Dispose();
SqlConn   =   null;
}
}

public   void   Open()
{
if   (   SqlConn   !=   null   )
{
//   建立数据库连接对象
SqlConn   =   new   SqlConnection(   sConn   );
//   打开数据库链接
SqlConn.Open();
}
}

public   void   Close()
{
//   如果数据库连接对象部位空关闭数据库
if   (   SqlConn   !=   null   )
{
SqlConn.Close();
}
}

public   DataView   RunSelectSQL   (   string   sSQLString   )
{
this.Open();
DataSet   SqlDS   =   new   DataSet();
SqlDataAdapter   SqlDA   =   new   SqlDataAdapter(   sSQLString,   SqlConn   );
SqlDA.Fill(   SqlDS   );             //这里出现了一个错误,错误的提示是:“未处理的“System.InvalidOperationException”类型的异常出现在   system.data.dll   中。其他信息:   Fill:   SelectCommand.Connection   属性尚未初始化。”
return   SqlDS.Tables[   0   ].DefaultView;
}

public   void   RunDelOrInsSQL   (   string   sSQLString   )
{
this.Open();
SqlCommand   SqlComm   =   new   SqlCommand(   sSQLString,   SqlConn   );
SqlComm.ExecuteNonQuery();
}

public   DataBase()
{

}
}
}


------解决方案--------------------
public void Open()
{
if ( SqlConn != null )
{
// 建立数据库连接对象
SqlConn = new SqlConnection( sConn );
// 打开数据库链接
SqlConn.Open();
}
else if(SqlConn.State!=ConnectionState.Open)
{
SqlConn.Open();
}
}
public void Close()
{
// 如果数据库连接对象部位空关闭数据库
if ( SqlConn != null )
{
if(SqlConn.Sate!=ConnectionState.Close)
{
SqlConn.Close();
}
}
}
另外,在执行完数据操作之后,应及时关闭数据库连接