我有一个类,我有一个创建连接字符串的方法。我想从其他窗口访问该连接字符串,但这不起作用。这是我的代码到目前为止:
我的主要登录是通过点击按钮
从类中调用方法private void button_Click(object sender, RoutedEventArgs e)
{
Class1 kl = new Class1();
kl.SQLCon(textBox, textBox_Copy);
}
我的班级看起来像这样:
class Class1
{
string user = string.Empty;
string pass = string.Empty;
private string ConString = string.Empty;
public string User { get { return this.ConString; } set { this.ConString = value; } }
public void SQLCon(TextBox tb1,TextBox tb2)
{
user = tb1.Text;
pass = tb2.Text;
if (string.IsNullOrWhiteSpace(user) || string.IsNullOrWhiteSpace(pass))
{
MessageBox.Show("Popuni sva polja");
return;
}
SqlConnection con;
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder.DataSource = "DESKTOP";
builder.InitialCatalog = "Manager";
builder.IntegratedSecurity = false;
builder.UserID = user;
builder.Password = pass;
try
{
using (con = new SqlConnection(builder.ToString()))
{
con.Open();
if ((con != null && con.State == System.Data.ConnectionState.Open))
{
ConString = builder.ToString();
MessageBox.Show("Uspesno logovan!" + ConString);
Window1 win = new Window1();
win.ShowDialog();
}
}
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message);
}
}
}
现在,当我从Window1调用方法来获取ConString时,我什么都没得到,空白。问题是它没有在SQLCon中查找字符串值,它正在查找它,因为它是在开始时定义的班级。 我可以使用这个解决方案:在调用ShowDialog之前,我可以在Window1中有一个字符串,我可以传递这个值,类似于win.stringCon = ConString,这样可行。但我希望能够做到这样:
Window1代码:
private void button_Click(object sender, RoutedEventArgs e)
{
Class1 myClass = new Class1();
string conn = myClass.User;
MessageBox.Show(conn);
}
答案 0 :(得分:0)
解决方案:你不能按照我想象的方式去做。但这是你能做的。 你在Window1中定义一个字符串(conString),它将是你的连接字符串。你在调用win.ShowDialog()之前放置这一行:
mw.conString = conString;
这样你就可以在新窗口中输入字符串。只需一行,你就可以将值从Window1传输到下一个要打开的其他窗口。