我有一个带有一个主窗口的简单 .net 应用程序。那里有一些单选按钮,我想在处理数据之前检查它们。我有两组 CS 文件。Form1.cs(主窗口代码)和 database.CS(实际运行 DB 查询的代码。) database.cs 需要能够从 Form1.cs 中读取一些设置。
在 form1.cs 我有这个:
public string GetWorld
{
get
{
if (this.radioButton_Dev.Checked == true)
{
MessageBox.Show("Returning Dev!");
return "Dev";
}
else if (this.radioButton_Prod.Checked == true)
{
MessageBox.Show("Returning Prod!");
return "Prod";
}
else
{
MessageBox.Show("Returning default!");
return "Dev";
}
}
}
在 database.cs 我有这个:
public SqlConnection GetConnectionString () {
Form1 MainWindow;
MainWindow = new Form1();
if (MainWindow.GetWorld == "Dev" )
{
SqlConnection Connection = new SqlConnection("Data Source = Dev .... blah blah blah...");
return Connection;
}
else if (MainWindow.GetWorld == "Prod")
{
SqlConnection Connection = new SqlConnection("Data Source = Prod .... blah blah blah...");
return Connection;
}
else
{
SqlConnection Connection = new SqlConnection("Data Source = Dev .... blah blah blah...");
return Connection;
}
}
我遇到的问题是,无论我检查了什么单选按钮,它总是选择顶部开发选项。
我可以采取一些解决方法(使单选按钮作为对 database.CS 的调用的一部分传递),但我不明白为什么这不能正常工作。对我来说,GetConnectionString() 方法似乎基本上是在应用程序启动时提取表单数据,而从未真正查找它。
如果在 Form1 中运行这段代码:
private void button1_Click(object sender, EventArgs e)
{
string blah = GetWorld;
MessageBox.Show(blah);
}
它正确更新。