在C#中检索SQL Server中的二进制字段

时间:2015-01-06 20:23:50

标签: c# sql-server

我想在varbinary(MAX)类型列中保存pdf文件,并在SQL Server中使用TableAdapter。我写了这段代码来插入:

DataSet1TableAdapters.Table1TableAdapter tblpdf = new DataSet1TableAdapters.Table1TableAdapter();

byte[] b = System.IO.File.ReadAllBytes(pdfDocument1.FilePath);
tblpdf.InsertQuery(b);

并且它可以正常工作,但我在从二进制列中检索PDF时遇到问题。我使用这段代码:

byte[] c= (byte[]) table1TableAdapter.ScalarQuery(txtSearch.Text); //with txtsearch box i search a field

System.IO.File.WriteAllBytes(pdfDocument1.FilePath, c);

我收到错误

  

路径不能为空

我认为这意味着我的“c”变量为空且ScalarQuery无效。

请帮帮我

1 个答案:

答案 0 :(得分:0)

@MarcB:是的,你是对的,我改变了这一行:

System.IO.File.WriteAllBytes(pdfDocument1.FilePath,c);

到这一个:

System.IO.File.WriteAllBytes(@“D:\ serah.pdf”,c);

它正常工作。

但现在问题是如何使用“WriteAllBytes”将c写入代码中的变量,实际上我想做这样的事情:

System.IO.File.WriteAllBytes(ff,c);

pdfDocument1.FilePath = ff;