将文件以二进制形式存储到Sql Server中
将文件以二进制形式保存到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
/**//// <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
/**//// <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