0

我是 WPF 的新手,任何建议都将不胜感激。

我有一个 WPF 应用程序。当用户单击主窗口的“NEXT”按钮时,它将连接到远程数据库。如果 db 连接成功,将显示第二个窗口并从数据库中读取更多信息并显示一些内容。我使用类 SQLRead 来完成数据库连接工作。

public class SQLRead
{
    public string sql;
    SqlConnection conn;
    SqlCommand cmd;
    public int counter, length, dIndex, cdIndex, sdIndex;
    public int[,] data;
    public char[,] cdata;
    public string[,] sdata;

    public SQLRead()
    {
        sql = ""; counter = 0; length = 0;
        dIndex = 0; cdIndex = 0; sdIndex = 0;
    }

    public void NewConnection()
    {
        //if (conn != null) conn.Close();
        conn = new SqlConnection(
            @"Data Source = TheServer\TheInstance
              Integrated Security = SSPI;");
        cmd = new SqlCommand(sql, conn);
        cmd.CommandTimeout = 120;
        cmd.CommandType = CommandType.Text;
    }

    public void Connect()
    {
        conn.Open();
    }

    public void Disconnect()
    {
        conn.Close();
    }

我的问题是如何将 SQLRead 实例转移到第二个窗口?

谢谢。

4

1 回答 1

0

为什么不创建一个应用程序范围的共享变量来插入 Sqlread 对象?然后您可以从应用程序中的任何位置访问它:

class Application
{
    internal static SQLRead sharedSQLRead { get; set; }
}

在主窗口中:

Application.sharedSQLRead = new SQLRead();

在第二个窗口中:

Application.sharedSQLRead.doWhatever();

这似乎比传递参考更容易......

于 2012-11-15T22:24:17.523 回答