本帖最后由 chase_wang 于 2013-04-05 10:42:28 编辑

解决方案 »

  1.   

    App_Codeusing System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Data.Sql;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;/// <summary>
    ///EosClass 的摘要说明
    /// </summary>
    namespace Eos.Class
    {
    public class EosClass
    {
        public SqlConnection myConnection;
    public EosClass()
    {
    //
    //TODO: 在此处添加构造函数逻辑
    //
    }    bool myDBConSelfOpen = false;
        //自动打开连接
        private void OpenCon()
        {
            if (myConnection == null)
            {
                string myConnStr = HttpContext.Current.Application["ConnStr"].ToString();
                myConnection = new SqlConnection(myConnStr);
                myConnection.Open();            myDBConSelfOpen = true;
            }
        }
        //自动关闭连接
        private void CloseCon()
        {
            if (myDBConSelfOpen == true)
            {
                myConnection.Close();
                myConnection.Dispose();
                myConnection = null;            myDBConSelfOpen = false;
            }
        }    //获取第一行记录
        public DataRow GetDataRow(string strQuery)
        {
            DataRow myRow = null;
            try
            {
                DataTable myTable = GetDataTable(strQuery);
                if (myTable.Rows.Count > 0)
                {
                    myRow = myTable.Rows[0];
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return myRow;
        }    //获取多条记录
        public DataTable GetDataTable(string strQuery)
        {
            //声明数据集 myDataSe
            DataTable myTable = new DataTable();        try
            {
                myTable = GetDataSet(strQuery).Tables[0];
            }
            catch (Exception ex)
            {
                throw ex;
            }
            //返回数据集 myDataSet
            return myTable;
        }    //获取多条记录
        public DataSet GetDataSet(string strQuery)
        {
            //声明数据集 myDataSe
            DataSet myDataSet = new DataSet();        try
            {
                OpenCon();
                //声明适配器 myDataAdapter用于连接 DataSet 与数据库
                SqlDataAdapter myDataAdapter = new SqlDataAdapter(strQuery, myConnection);            //将数据装填到 DataSet中
                myDataAdapter.Fill(myDataSet);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            CloseCon();        //返回数据集 myDataSet
            return myDataSet;
        }
        /// <summary>
        /// 执行操作数据库的命令(增、删、改)含参数
        /// </summary>
        /// <param name="strQuery">操作数据库的SQL语句</param>
        public bool ExecuteSql(string strQuery)
        {
            bool flag = true;        //打开数据库
            OpenCon();
            SqlTransaction myTra = myConnection.BeginTransaction();
            //创建操作数据库的命令
            SqlCommand myCommand = new SqlCommand(strQuery, myConnection, myTra);
            try
            {
                //执行命令
                myCommand.ExecuteNonQuery();
                myTra.Commit();
            }
            catch (Exception ex)
            {
                flag = false;
                myTra.Rollback();
                throw ex;
            }
            CloseCon();        return flag;
        }
    }
    }
      

  2.   

    未将对象引用设置到对象的实例。说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
    行 69:         catch (Exception ex)
    行 70:         {
    行 71:             throw ex;
    行 72:         }
    行 73:         return myRow;
      

  3.   

    GetDataTable(strQuery)返回值是null吧if (myTable!=null&&myTable.Rows.Count > 0)
      

  4.   

    设置断点,单步跟踪。
    最好解决的bug,没有之一。
      

  5.   

    DataTable myTable = GetDataTable(strQuery);
    判空