写一个构造Connection的方法,把四个字符串做参数。
public SqlConnection CreateConnection(string IP, string ..)
{
//构造连接
return conn;
}
public SqlConnection CreateConnection(string IP, string ..)
{
//构造连接
return conn;
}
解决方案 »
- WebBrowser如何循环自动提交一个页面?
- 导入EXECL,DATAVIEW出现错误
- 关于DataGridView如何根据条件显示不同的东西
- 想同时按下Shift + Alt + P 呼出程序a.exe,如何弄
- 简单小问题 希望高手来帮忙!谢谢
- C#中怎么得到已有域名的DNS主机地址?
- remoting对象能不能访问宿主的函数
- FTP上传文件夹以及文件源码
- 谁能提供“识别条码和条码打印程序”或无需注册的控件也可,高分相送!
- 我现在不知道什么样的我该不该作一个可以拉成浮动窗口的toolbar
- winform前台如果给操作类和链接类传参?
- access 2003数据库mdb文件在哪些操作系统中没有安装相应驱动?
public DataBase()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
重载一个带参数的构造函数
public DataBase(string s)
{
}
然后new的时候,不要用默认的构造函数去new,而使用新定义的构造函数
DataBase DB=new DataBase("123");
这样就传进去了
传进去了之后,你在带参数的构造函数里,把参数提取出来,保存到一个全局变量,供其他函数使用
public DataBase(string s)
{
s1=s;
}
这样你类里的其他函数就可以使用s1了
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();
}
大致是这样 具体细节 自己实现
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。