为了解决所有自己做的数据库应用程序都只用一个连接的问题,自定义了一个类,只包含一个对像:sqlConnection,ConnectionString在类中已经获取,不用在其它程序中设置,这样在代码中调用起来很方便了,但在设计表格等格式化的东西时怎么能用这个类里的sqlConnection?没搞懂,继续问。

解决方案 »

  1.   

    我目前采取的方法是在ConnectionUtils类中写一个共享方法:public static InitConnections(SqlDataAdapter[] sdas)
    {
      ArrayList cmdsArr = new ArrayList();
      for(int i = 0;i<sdas.Length;i++)
      {
         if(sdas[i] == null) continue;
         if(sdas[i].SelectCommand != null) cmdsArr.Add(sdas[i].SelectCommand);
         if(sdas[i].InsertCommand != null) cmdsArr.Add(sdas[i].InsertCommand);
         if(sdas[i].UpdateCommand != null) cmdsArr.Add(sdas[i].UpdateCommand);
         if(sdas[i].DeleteCommand != null) cmdsArr.Add(sdas[i].DeleteCommand);
      
      }
      if(cmdsArr.Count == 0) return;  SqlCommand[] cmds = new SqlCommand[cmdArr.Count - 1];
      cmdsArr.CopyTo(cmds,0);  InitConnections(cmds);
    }public static InitConnections(SqlCommand[] cmds)
    {
      SqlConnection con = ConnectionUtils.CreateConnection();
      string conStr = con.ConnectionString;
      
      for(int i = 0;i<cmds.Length;i++)
      {
        if(cmds[i].Connection != null)
        {
          cmds[i].Connection.ConnectionString = conStr;
          continue; 
        }
        cmds[i].Connection = con;
      }
    }然后在窗体构造函数中:
    ConnectionUtils.InitConnections(this.sda...);
      

  2.   

    把sqlconnection作为属性暴露出来
            private SqlConnection _conn;
            public SqlConnection Conn
            {
                get { return _conn; }
            }
      

  3.   

    赞成
    3tzjq(永不言弃) ( ) 信誉:146
      

  4.   

    试下(永不言弃) ( ) 信誉:146的办法,行了就谢谢
    scow(scow)的办法我没看明白,不知道是什么意思的,因为我是新手
      

  5.   

    此问题已经解决,解决办法可能有点不是很好修改.Designer.CS也就是窗体的设计器生成的代码.
      

  6.   

    估计3tzjq(永不言弃) ( ) 信誉:146 回答的正和楼主之意