C# 将所选对话框项获取到另一个按钮方法

C# 将所选对话框项获取到另一个按钮方法,c#,.net,filedialog,C#,.net,Filedialog,因此,我正在编写一个windows窗体应用程序,用户将从他的计算机中选择一个xml文件(使用文件对话框),当他单击“保存”按钮时,它应该保存在数据库中。但是我对如何将所选项目保存到save按钮方法有点迷茫。以下是我的btnChooseFile\u单击 private void btnChooseFile_Click(object sender, EventArgs e) { OpenFileDialog dlg = new OpenFileDialog();

因此,我正在编写一个windows窗体应用程序,用户将从他的计算机中选择一个xml文件(使用文件对话框),当他单击“保存”按钮时,它应该保存在数据库中。但是我对如何将所选项目保存到save按钮方法有点迷茫。以下是我的btnChooseFile\u单击

private void btnChooseFile_Click(object sender, EventArgs e)
    {
        OpenFileDialog dlg = new OpenFileDialog();
        dlg.Multiselect = false;
        dlg.Filter = "XML documents (*.xml)|*.xml|All Files|*.*";

        if (dlg.ShowDialog() == DialogResult.OK)
        {
            tbxXmlFile.Text = dlg.FileName;
            XmlDocument invDoc = new XmlDocument();
            invDoc.Load(dlg.FileName);
            ....
            ....
        }
    }
下面是我的btnStore\u点击

  private void btnStore_Click(object sender, EventArgs e)
    {
        try
        {
            string cs = @"Data Source=localhost;Initial Catalog=db;integrated security=true;";
            using (SqlConnection sqlConn = new SqlConnection(cs))
            {
                DataSet ds = new DataSet();
                ds.ReadXml("This is where I want to get the selected file");
                ....
                ....
            }
        }
    }

那么我该怎么做呢?

您可以使用私有成员变量

private String filename = null;

private void btnChooseFile_Click(object sender, EventArgs e)
{
    OpenFileDialog dlg = new OpenFileDialog();
    dlg.Multiselect = false;
    dlg.Filter = "XML documents (*.xml)|*.xml|All Files|*.*";

    if (dlg.ShowDialog() == DialogResult.OK)
    {
        tbxXmlFile.Text = dlg.FileName;
        XmlDocument invDoc = new XmlDocument();
        invDoc.Load(dlg.FileName);
        ....
        ....
        this.filename = dlg.FileName;
    }
}

private void btnStore_Click(object sender, EventArgs e)
{
    try
    {
        string cs = @"Data Source=localhost;Initial Catalog=db;integrated security=true;";
        using (SqlConnection sqlConn = new SqlConnection(cs))
        {
            DataSet ds = new DataSet();
            ds.ReadXml(this.filename);
            ....
            ....
        }
    }
}

只要把它放在一个私人的地方就行了variable@NedStoyanov当然,我真傻。谢谢