将文件以二进制形式保存到Sql Server数据库表中
![]()
/DatSet读取文件/#region /DatSet读取文件/
![]()
/**//// <summary>
/// 根据aaId,使用DataSet 读取**文件内容,还原恢复。
/// </summary>
/// <param name="ioId">**的ID号</param>
/// <param name="tableName">表名</param>
/// <param name="fieldName">存储**文件内容的字段</param>
public bool ReadFileOutFormSqlServer(int ioId,string tableName,string fieldName)
![]()
{
bool flag=false;
![]()
object tempfileName=null;
![]()
string strSql="select fullpath,"+fieldName+" from "+tableName+" where infoID="+infoId;
![]()
DataSet ds=new DataSet();
Database database=new Database(p_sqlConnString);
![]()
try
![]()
{
ds=database.DBDataSet(strSql);
byte[] tmpFile=null;
foreach(DataRow dr in ds.Tables[0].Rows)
![]()
{
if(dr[0]!=DBNull.Value)
![]()
{
tempfileName=dr[0];
tmpFile=(byte[])dr[1];
}
}
ds.Dispose();
![]()
![]()
if(tmpFile!=null)
![]()
{
string fileName=tempfileName.ToString();
FileInfo fi=new System.IO.FileInfo(fileName);
if(!fi.Exists)
![]()
{
//新建文件
using (FileStream fstream= fi.Create())
![]()
{
int length=tmpFile.Length;
fstream.Write(tmpFile,0,tmpFile.Length);
fstream.Close();
flag=true;
}
![]()
}
else
![]()
{
using(FileStream fs=fi.OpenWrite())
![]()
{
int length=tmpFile.Length;
fs.Write(tmpFile,0,tmpFile.Length);
fs.Close();
flag=true;
}
}
}
}
catch (Exception err)
![]()
{
throw err;
}
finally
![]()
{
database.Close();
}
return flag;
}
![]()
#endregion
![]()
/***保存文件***/#region /***保存文件***/
![]()
/**//// <summary>
/// 保存文件到SQL Server数据库中
/// </summary>
/// <param name="RRR">**文件类</param>
/// <param name="tableName">表名</param>
/// <param name="fieldName">存储**文件内容的字段</param>
public bool SaveIntoSqlServer(RRR accredit,string tableName,string fieldName)
![]()
{
bool flag=false;
//保存文件到SQL Server数据库中
string fileName=accredit.FullPath;
![]()
FileInfo fi=new FileInfo(fileName);
if (fi.Exists)
![]()
{
SqlConnection cn=null;
try
![]()
{
byte[] dData=null;
//读文件,放入buffer
using(FileStream fs=fi.OpenRead())
![]()
{
dData=new byte[fi.Length];
int nReadLength=fs.Read(dData,0,(int)(fi.Length));
![]()
}
string sqlStr="insert into "+tableName+"(ioID,path,cTime,"+fieldName+") values("
+accredit.IoID+",'"+accredit.Path+"','"+accredit.CTime+"',@file)";
![]()
cn=ConnectToSqlSever();
if(cn.State==0) cn.Open();
SqlCommand cm=new SqlCommand(sqlStr,cn);
cm.Parameters.Add("@file",dData);
cm.ExecuteNonQuery();
cm.Dispose();
flag=true;
}
catch (Exception err)
![]()
{
throw err;
}
finally
![]()
{
cn.Close();
}
}
return flag;
}
#endregion
数据字段为varbinary