在表单之间使用相同的 IDB2 连接
Use the same IDB2 connection between forms
要么这太简单以至于没有人问过它,要么没有多少人尝试这样做,所以我无法在 google 查询中找到任何好的结果。基本上,我的主要形式是创建到 i 系列 (AS400) 大型机的 IDB2 连接:
Connection con = new Connection();
con.Open(connectionString, userName, userPassword, 0);
主窗体可以很好地使用此连接。我有另一个表格显示PC 上内部SQL 数据库中的记录,但是这个表格也需要访问AS400。我加了一个IDB2connection的入口参数,窗体第一次初始化时连接状态是打开的。但是,当我单击窗体上的按钮并进入该新子例程时,连接为空。为了始终保持连接打开,我是否需要将其设置为 public 之类的?我可以将所有代码以这种形式重新打开一个新连接,但它看起来有点笨拙。关于如何在表单之间共享开放连接有什么想法吗?
新表格:
private iDB2Connection conn;
public frmFileDatabase(iDB2Connection conn)
{
InitializeComponent();
}
private void btnUpload_Click(object sender, EventArgs e)
{
// conn is null at this point
}
private iDB2Connection conn;
public frmFileDatabase(iDB2Connection _conn)
{
InitializeComponent();
conn = _conn;
}
private void btnUpload_Click(object sender, EventArgs e)
{
// you can use the connection
}
您需要将参数分配给您的私有变量,
这可能对你有帮助
要么这太简单以至于没有人问过它,要么没有多少人尝试这样做,所以我无法在 google 查询中找到任何好的结果。基本上,我的主要形式是创建到 i 系列 (AS400) 大型机的 IDB2 连接:
Connection con = new Connection();
con.Open(connectionString, userName, userPassword, 0);
主窗体可以很好地使用此连接。我有另一个表格显示PC 上内部SQL 数据库中的记录,但是这个表格也需要访问AS400。我加了一个IDB2connection的入口参数,窗体第一次初始化时连接状态是打开的。但是,当我单击窗体上的按钮并进入该新子例程时,连接为空。为了始终保持连接打开,我是否需要将其设置为 public 之类的?我可以将所有代码以这种形式重新打开一个新连接,但它看起来有点笨拙。关于如何在表单之间共享开放连接有什么想法吗?
新表格:
private iDB2Connection conn;
public frmFileDatabase(iDB2Connection conn)
{
InitializeComponent();
}
private void btnUpload_Click(object sender, EventArgs e)
{
// conn is null at this point
}
private iDB2Connection conn;
public frmFileDatabase(iDB2Connection _conn)
{
InitializeComponent();
conn = _conn;
}
private void btnUpload_Click(object sender, EventArgs e)
{
// you can use the connection
}
您需要将参数分配给您的私有变量, 这可能对你有帮助