Asp.net 无效参数
为了从数据库中检索文件,我在下载efile时使用了下面的linq查询,但在函数下载(efile)中存在无效参数的问题。 我见过一些使用datatable进行下载的地方。我喜欢在不使用datatable的情况下这样做,但我不知道怎么做Asp.net 无效参数,asp.net,linq,Asp.net,Linq,为了从数据库中检索文件,我在下载efile时使用了下面的linq查询,但在函数下载(efile)中存在无效参数的问题。 我见过一些使用datatable进行下载的地方。我喜欢在不使用datatable的情况下这样做,但我不知道怎么做 the fields of table tblfile is like below. fileid(int), FileName (varchar(50)), ContentType (varchar(50)), Data varbinary(MAX) 有什么问
the fields of table tblfile is like below.
fileid(int), FileName (varchar(50)), ContentType (varchar(50)), Data varbinary(MAX)
有什么问题请帮忙
protected void LinkButton1_Command(object sender, CommandEventArgs e)
{
if (e.CommandName == "Download")
{
_DataContext = new EDMSDataContext();
//you can get your command argument values as follows
string FileId = e.CommandArgument.ToString();
int _FileId = Convert.ToInt32(FileId);
var Efile = from ef in _DataContext.tblFiles
where ef.FileId == _FileId
select ef;
if (Efile != null)
{
download(Efile);
}
}
}
private void download ( tblFile Efile)
{
Byte[] bytes = (Byte[])Efile.Data.ToArray();
Response.Buffer = true;
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = Efile.ContentType.ToString();
Response.AddHeader("content-disposition", "attachment;filename="
+ Efile.FileName.ToString());
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();
}
该方法正在接受“tblFile”对象的参数,您正在传递集合。将Single()添加到linq查询表达式中,它就会得到解析
var Efile = (from ef in _DataContext.tblFiles
where ef.FileId == _FileId
select ef).Single();
或者,也可以使用
First()
、FirstOrDefault()
或SingleOrDefault()
确保.dbml文件具有表的属性tblfile,如您所需和此处所述。并使用下面的代码重试数据库中的数据
tblFile data = _DataContext.tblFile.SingleOrDefault(s=>s.fileid == _FileId);
这将根据您的需要工作。谢谢。错误已删除,但下载功能似乎不起作用,无法下载