【问题标题】:WPF download file from SQL Server从 SQL Server 下载 WPF 文件
【发布时间】:2016-05-18 08:46:56
【问题描述】:

我正在做一个项目,我需要从 SQL Server 数据库下载音频和视频文件。我正在使用 WPF 来执行此操作。此时,我已经能够在 GridView 中显示我的数据库中允许下载的所有文件。这是项目启动时的样子:

我创建了一个 LINQ to SQL 类来访问我的数据库数据并将它们显示如下:

 public partial class MainWindow : Window
   {

    DataClassesDataContext dc = new DataClassesDataContext(Properties.Settings.Default.TranscodeDBConnectionString);

    public MainWindow()
    {
        InitializeComponent();
        Title = "Transcode";
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        var query = from file in dc.Conversions
                    join codec in dc.Codecs on file.CodecID equals codec.CodecID
                    where file.Status.Equals("Pending")
                    select new
                    {
                        file.ConversionID,
                        file.FileName,
                        file.ContentType,
                        codec.Format
                    };
        ConversionGrid.ItemsSource = query;
    }

我需要通过点击下载按钮来下载这些文件,这就是我所做的:

private void Download_Click(object sender, RoutedEventArgs e)
    {

        byte[] fileData;
        string fileName = "";

        var query = from file in dc.Conversions
                    where file.ConversionID.Equals("14")
                    select file;

        fileName = query.First().FileName;

        fileData = (byte[])query.First().File.ToArray();

        Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
        dlg.FileName = fileName;
        dlg.DefaultExt = "";

        Nullable<bool> result = dlg.ShowDialog();

        if (result == true)

        {
            fileName = dlg.FileName;
        }
    }

这里我指定下载 ConversionID 为 14 的文件,但它返回给我一个没有任何扩展名的空白文件。

我需要的是,点击下载,它会下载带有扩展名的特定文件!

【问题讨论】:

  • 您确定您的查询正确吗?

标签: c# sql-server wpf linq


【解决方案1】:

如果您的其余代码是正确的,要从完整路径中检索 FileName,请执行以下操作:

string[] strPath = fileName.Split(Convert.ToChar(@"\"));
fileName = strPath[strPath.Length - 1];

上面的代码将为您提供带有扩展名的文件名。

要从中检索扩展名,您只需要以这种方式提取它:

string extension = Path.GetExtension(fileName);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多