成功.NET将SQL SERVER二进制转换为文件
public Boolean SaveFile( string AddMan)
{
string strSQLconn = "Server=172.16.21.213;initial catalog=SRR_LZ;user id=sa;password=szzttz;Connect Timeout=500";//数据库连接字符串
SqlConnection conn = new SqlConnection(strSQLconn);//声明连接
conn.Open();
SqlCommand com1 = conn.CreateCommand();
SqlTransaction tran1 = conn.BeginTransaction();
com1.Transaction = tran1;
try
{
string webRootPath = Directory.GetCurrentDirectory();//根目录
string FileDir = webRootPath + "\\UploadFile\\";//pdf上传目录
string FilePath = "";//文件路径
string FileName = "";//文件名称
string id_fun = "";//存储id字段
#region 获取二进制数据
string sqlStr = "select id,data,allcode from ART_data1.dbo.data_SinglegeneReprart where (convert(varchar(128),id) not in (select id from GeneTestResultss))";//数据库的查询语句
com1.CommandText = sqlStr;
com1.CommandTimeout = 60000;
SqlDataAdapter sda = new SqlDataAdapter(com1);
DataSet ds = new DataSet();
sda.Fill(ds, "data_SinglegeneReport");
DataTable myTable = ds.Tables["data_SinglegeneReport"];
for (int i = 0; i < myTable.Rows.Count; i++)
{
byte[] FileData = (byte[])myTable.Rows[i]["data"];// System.Text.Encoding.Default.GetBytes( myTable.Rows[0]["data"]);
id_fun = myTable.Rows[i]["id"] + "";//id字段
FileName = id_fun + ".pdf";
#endregion
#region 保存文件
if (!Directory.Exists(FileDir))
{
Directory.CreateDirectory(FileDir);
}
FilePath = Path.Combine(FileDir, FileName);
FileStream fs = new FileStream(FilePath, FileMode.Create);
fs.Write(FileData, 0, FileData.Length);
fs.Close();
#endregion
}
sda.Dispose();
#region 保存数据到基因检测结果表
sqlStr = "insert into GeneTestResultss(id,EggDevelopementDisorderNumber,AddMan,AddTime,ReportingTime,PdfFilePath) select a.id,b.EggDevelopementDisorderNumber,'" + AddMan + "',a.jlsj,a.bgrq,'/UploadFile/' + convert(varchar,a.id) as PdfFilePath from ART_data1.dbo.data_SinglegeneReprart a,SR_LZ.dbo.LZBase b where a.kh=b.CardNumber and (convert(varchar(128),a.id) not in (select id from SR_LZ.dbo.GeneTestResults))";
com1.CommandText = sqlStr;
com1.ExecuteNonQuery();
#endregion
tran1.Commit();
return true;
}
catch (Exception r)
{
tran1.Rollback();
return false;
}
finally
{
conn.Close();
conn.Dispose();
}
}