【发布时间】: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