vs2003经常连接不上数据库,什么原因?
一开始可以,过了一会儿connection.open()就报异常:未将对象设置到实例
重启机子
好了
过上一段时间,快则30分钟,长则半天,又这样
如此反复,唉,晕死了
有高手知道原因吗?
是系统还是程序的原因?

解决方案 »

  1.   

    很明显是你的程序问题, 
    "未将对象设置到实例" 这个错误是发生在你的connection被另一个线程给释放掉了,
    你需要彻查你所有的代码, 尤其是多线程的情况下, 是否有线程在退出的同时将connection
    给释放掉了.
      

  2.   

    我的连接是写在一个SqlServer类里的:/// <summary>
    /// SqlServer 的摘要说明。
    /// </summary>
    public class SqlServer
    {
    /// <summary>
    /// SqlServer 的摘要说明。
    /// </summary>
    /// <summary>
    /// 链接数据库对象
    /// </summary>
    private SqlConnection SqlCon = null; /// <summary>
    /// 构造函数
    /// </summary>
    public SqlServer()
    {
    Connection();
    }
    /// <summary>
    /// 析构函数
    /// </summary>
    ~SqlServer()
    {
    Close();
    }
    public void Connection()
    {
    try
    {
    string ConnectionStr = ""; //链接字符串 if(SqlCon != null)
    {
    Close();
    }

    ConnectionStr = ConfigurationSettings.AppSettings["ConnectionStr"];
    SqlCon  = new SqlConnection(ConnectionStr);
    SqlCon.Open ();
    }
    catch(Exception ex)
    {
    Console.Write(ex.ToString());
    }
    }
    ...........
    /// <summary>
    /// 关闭数据库对象
    /// </summary>
    public void Close()
    {
    try
    {
    if(SqlCon != null)
    {
    SqlCon.Close ();
    SqlCon.Dispose ();
    SqlCon = null;
    }
    }
    catch
    { }
    }
    }
      

  3.   

    连接字符串:
    <add key="ConnectionStr" value="server=.; pwd=wlcbMinXin_f; uid =wlcbMinXin_f; database=wlcbMinXin; Persist Security Info=True" />
      

  4.   

    可否解释得详细点
    如果可能的话给出解决方案
    我觉得那样写,connection都释放了呀
      

  5.   

    1. 检查一下你的代码在操作过程中是否出现过异常, 如果有的话最好在FINALLY{}里使用conn.close()2. 建议你使用SQLHELPER
      

  6.   

    怎么检查?跟踪调试吗?
    SQLHELPER是什么东西?
      

  7.   

    可能1,"未将对象设置到实例" 这个错误是发生在你的connection被另一个线程给释放掉了, 
    你需要彻查你所有的代码, 尤其是多线程的情况下, 是否有线程在退出的同时将connection 
    2close()
      

  8.   


    public void Connection()
    {
    try
    {
    string ConnectionStr = ""; //链接字符串 if(SqlCon != null)
    {
    Close();
    }

    ConnectionStr = ConfigurationSettings.AppSettings["ConnectionStr"];
    SqlCon  = new SqlConnection(ConnectionStr);
    SqlCon.Open ();
    }
    catch(Exception ex)
    {
    Console.Write(ex.ToString());
    }
    }这儿的Connection对象都是重新创建的呀
    就算没关,也就是SqlCon不为null
    也调用了Close();了呀
      

  9.   


    public void Connection()
        {
            try
            {
                string ConnectionStr = "";                                            //链接字符串            if(SqlCon != null)
                {
                    Close();
                }
                    
                ConnectionStr = ConfigurationSettings.AppSettings["ConnectionStr"];
                SqlCon  = new SqlConnection(ConnectionStr);
                SqlCon.Open ();
            }
            catch(Exception ex)
            {
                Console.Write(ex.ToString());
            }
        }
    出错的地方就在SqlCon.Open();