如何从类中的方法获取字符串值?

时间:2017-11-30 13:53:11

标签: c# wpf

我有一个类,我有一个创建连接字符串的方法。我想从其他窗口访问该连接字符串,但这不起作用。这是我的代码到目前为止:

我的主要登录是通过点击按钮

从类中调用方法
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);
    }

1 个答案:

答案 0 :(得分:0)

解决方案:你不能按照我想象的方式去做。但这是你能做的。 你在Window1中定义一个字符串(conString),它将是你的连接字符串。你在调用win.ShowDialog()之前放置这一行:

mw.conString = conString;

这样你就可以在新窗口中输入字符串。只需一行,你就可以将值从Window1传输到下一个要打开的其他窗口。