新手提问:异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

图片说明

using System;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;

///
/// DbAccess 的摘要说明
///
public class DbAccess
{
private static SqlConnection conn;
private SqlDataAdapter da;
private DataSet ds;
private SqlCommand cmd;
public DbAccess()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
///
/// 获取数据库连接
///
/// 获取数据库连接
internal static SqlConnection GetConn()
{
try
{
//从webConfig中读取数据库链接字符串
string cstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
conn = new SqlConnection(cstr);
if (conn.State != ConnectionState.Open)
{
conn.Open();

        }
        return conn;
    }
    catch (Exception e)
    {      
    }
    return null;
}

///
/// 关闭数据库链接
///
internal static void CloseConn()
{
if (conn.State != ConnectionState.Closed)
{
conn.Close();
}
}

///
/// 执行Sql语句,包括添加,删除,和修改语句
///
/// sql语句
/// 数据库影响的行数
public bool ExecuteSql(string sql)
{
try
{
conn = GetConn();

        if (conn.State != ConnectionState.Open)
        {
            conn.Open();
        } 
        cmd = new SqlCommand(sql, conn);
        int flag = cmd.ExecuteNonQuery();

        return flag > 0;
    }
    catch (Exception e)
    { 
    }
    finally
    {
        conn.Close();

    }
    return false;
}


/// <summary>
/// 根据sql语句返回DataSet类型数据集
/// </summary>
/// <param name="sql">Sql查询语句</param>
/// <returns>DataSet数据集</returns>
public DataSet GetDataSet(string sql)
{
    try
    {
        conn = GetConn();
        da = new SqlDataAdapter(sql, conn);
        DataSet dst = new DataSet();
        da.Fill(dst);

        return dst;
    }
    catch { }
    finally
    {
        conn.Close();
    }
    return null;
}

conn = GetConn();空指针异常,看下string cstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;能否获取到值?debug看下conn是否为空,conn调用前建议加个判断,如

if(null!=conn){
conn.Close();
}
其他类似

判断conn在使用的时候,是不是是NULL,如果是的话,不需要关闭!