写一个构造Connection的方法,把四个字符串做参数。
public SqlConnection CreateConnection(string IP, string ..)
{
 //构造连接
 return conn;
}

解决方案 »

  1.   

    给类添加一个带参数的构造函数,new的时候传参进去
      

  2.   

    好像不行,一new参数就为null了。
      

  3.   

    好像不行,一new参数就为null了。
    public DataBase()
            {
                //
                // TODO: 在此处添加构造函数逻辑
                //
            }
    重载一个带参数的构造函数
    public DataBase(string s)
            {
            }
    然后new的时候,不要用默认的构造函数去new,而使用新定义的构造函数
    DataBase DB=new DataBase("123");
    这样就传进去了
    传进去了之后,你在带参数的构造函数里,把参数提取出来,保存到一个全局变量,供其他函数使用
      

  4.   

    string s1;
    public DataBase(string s)
            {
    s1=s;
            }
    这样你类里的其他函数就可以使用s1了
      

  5.   

    在DataBase类中添加一个有参数的构造函数,如:
    string ip=string.empty;
    string userid=string.empty;
    string pwd=string.empty;
    string db=string.empty;
    public DataBase(string str1,string str2,string str3,string str4)
    {
    ip=str1;
    userid=str2;
    pwd=str3;
    db=str4;
    }
    现在ip,userid,pwd,db就可以再你的连接类里面随便用了。
    在Operation.cs这个类中获取界面上的输入,在他的构造函数中new你的连接类,如:
    public Operation()
            {
                //
                // TODO: 在此处添加构造函数逻辑
        //
    DataBase db=new DataBase(txtIP.text,txtDB.text,txtUID.text,txtPWD.text)
    db.Open();
            }
    大致是这样 具体细节 自己实现 
      

  6.   

    好像不行,一new参数就为null了。
    public DataBase()
            {
                //
                // TODO: 在此处添加构造函数逻辑
                //
            }
    重载一个带参数的构造函数
    public DataBase(string s)
            {
            }
    然后new的时候,不要用默认的构造函数去new,而使用新定义的构造函数
    DataBase DB=new DataBase("123");
    这样就传进去了
    传进去了之后,你在带参数的构造函数里,把参数提取出来,保存到一个全局变量,供其他函数使用不行啊。我把部分代码贴出:
    public class DataBase : IDisposable
        {
            public string ip;
            public string db;        public DataBase()
            {
                //
                // TODO: 在此处添加构造函数逻辑
          //
            }        public DataBase(string ipA,string dbN)
            {
                ip = ipA;
                db = dbN;
            }        private SqlConnection con;  
            private void Open()
            {
           if (con == null)
                {
                    con = new SqlConnection("Data Source=" + ip + ";Database=" + db + ";user id=sa ;password=1qaz2012");
                }
                if (con.State == System.Data.ConnectionState.Closed)
                    con.Open();        }
            #endregion好像不行,一new参数就为null了。
    public DataBase()
            {
                //
                // TODO: 在此处添加构造函数逻辑
                //
            }
    重载一个带参数的构造函数
    public DataBase(string s)
            {
            }
    然后new的时候,不要用默认的构造函数去new,而使用新定义的构造函数
    DataBase DB=new DataBase("123");
    这样就传进去了
    传进去了之后,你在带参数的构造函数里,把参数提取出来,保存到一个全局变量,供其他函数使用不行啊
    public class DataBase
        {
            public string ip;
            public string db;
            public string uid;
            public string pwd;
            public DataBase()
            {
                //
                // TODO: 在此处添加构造函数逻辑
                //
            }        public DataBase(string ipA,string dbN,string UID,string PWD)
            {
                ip = ipA;
                db = dbN;
                uid = UID;
                pwd = PWD;
            }        private SqlConnection con;  
            private void Open()
            {
          if (con == null)
                {
                    con = new SqlConnection("Data Source=" + ip + ";Database=" + db + ";user id=" + uid + " ;password=" + pwd);
                }
                if (con.State == System.Data.ConnectionState.Closed)
                    con.Open();
            }
            #endregion
    }public class Operation
        {
            public string ip;
            public string db;
            public string uid;
            public string pwd;
            public Operation()
            {
                //
                // TODO: 在此处添加构造函数逻辑
                //
            }        public Operation(string ipAddress, string dbname,string UID,string PWD)
            {
                //
                // TODO: 在此处添加构造函数逻辑
                //
                ip = ipAddress;
                db = dbname;
                uid = UID;
                pwd = PWD;
            }        DataBase DB= new DataBase(ip, db, uid, pwd);        #region  添加信息
            public void InsertDTe(int xid, string came, int pxl)
            {
                SqlParameter[] p ={ 
                DB.MakeInParam("@xid",SqlDbType.Int,4,xid),
               DB.MakeInParam("@pxl",SqlDbType.Int,4,pxl),
              DB.MakeInParam("@came",SqlDbType.NVarChar,50,came)
            };            int i = DB.RunProc("INSERT INTO ....) VALUES (@xid,1,@.........)", p);
            }
    }
    问题出现在这行:
            DataBase DB= new DataBase(ip, db, uid, pwd);
    出错提示:字段初始值设定项无法引用非静态字段、方法或属性“xxx.Operation.db”
    因为Operation.cs上有上百个方法在调用DB实例,所有DB写在外面new。