1个回答
展开全部
//写入数据库
SqlCommand com = new SqlCommand("插入的sql");
com.Connection = new SqlConnection("连接字符串");
com.Parameters.Add("image类型字段",SqlDbType.Image,"文件长度").Value = ReadFile("文件路径");
com.Connection.Open();
com.ExecuteNonQuery();
com.Connection.Close();
//显示
SqlCommand com = new SqlCommand("查询的sql");
com.Connection = new SqlConnection("连接字符串");
DataSet ds = new DataSet();
SqlDataAdapter da = null;
com.Connection.Open();
da = new SqlDataAdapter();
da.SelectCommand = cmd;
da.Fill(ds);
com.Connection.Close();
Getfile(ds);
<img src="文件路径">
#region 产生文件
private void Getfile(DataSet ds)
{
FileStream fs;
int len;
int i = 0;
byte[] buf;
if(ds!=null)
{
if(!Convert.IsDBNull(ds.Tables[0].Rows[0]["字段名"]))
buf = (byte[])ds.Tables[0].Rows[0]["字段名"];
else
buf = null;
if (buf!=null)
len = buf.GetLength(0);
else
len = 0;
if(len!=0)
{
fs=System.IO.File.Create(this.fileName);
fs.Write(buf,0,len-5);
fs.Flush();
fs.Close();
i=1;
}
else
{
fs= System.IO.File.Open(this.TemplateName.ToString(),System.IO.FileMode.Open);
len = (int)fs.Length;
buf = new byte[len];
fs.Read(buf,0,len);
fs.Close();
fs=System.IO.File.Create(文件完整路径);
fs.Write(buf,0,len);
fs.Flush();
fs.Close();
i=2;
}
}
else
{
fs= System.IO.File.Open(this.TemplateName.ToString(),System.IO.FileMode.Open);
len = (int)fs.Length;
buf = new byte[len];
fs.Read(buf,0,len);
fs.Close();
fs=System.IO.File.Create("文件完整路径");
fs.Write(buf,0,len);
fs.Flush();
fs.Close();
i=2;
}
if(fs !=null)
{
fs.Close();
}
}
#endregion
#region 读取文件
private byte[] ReadFile(string filePath)
{
int LastPos;
String strFileExt; //文件后缀4位(包括点)
System.IO.FileStream fs; //文件流
int i;
byte[] FileData=null ;
long fLeng; //文件长度
try
{
if(filePath.Trim() != "")
{
//取文件后缀
LastPos=filePath.LastIndexOf(".");
strFileExt=filePath.Substring(LastPos);
//读取文件数据到流中
fs = new System.IO.FileStream(filePath, System.IO.FileMode.Open,System.IO.FileAccess.Read);
fLeng=fs.Length;
//开辟数组大小
FileData=new Byte[fLeng+4];
//从流中读数据到数组中
fs.Read(FileData,0,FileData.GetUpperBound(0));
fs.Flush();
//关闭文件
fs.Close();
//设置文件后缀值
for(i=0;i<4;i++)
{
char[] tempC=new char[]{' '};
if(i<=strFileExt.Length-1)
{
tempC=strFileExt.Substring(i,1).ToCharArray();
}
FileData[fLeng+i]=(byte)tempC[0];
}
}
return FileData;
}
catch
{
return null;
}
}
#endregion
SqlCommand com = new SqlCommand("插入的sql");
com.Connection = new SqlConnection("连接字符串");
com.Parameters.Add("image类型字段",SqlDbType.Image,"文件长度").Value = ReadFile("文件路径");
com.Connection.Open();
com.ExecuteNonQuery();
com.Connection.Close();
//显示
SqlCommand com = new SqlCommand("查询的sql");
com.Connection = new SqlConnection("连接字符串");
DataSet ds = new DataSet();
SqlDataAdapter da = null;
com.Connection.Open();
da = new SqlDataAdapter();
da.SelectCommand = cmd;
da.Fill(ds);
com.Connection.Close();
Getfile(ds);
<img src="文件路径">
#region 产生文件
private void Getfile(DataSet ds)
{
FileStream fs;
int len;
int i = 0;
byte[] buf;
if(ds!=null)
{
if(!Convert.IsDBNull(ds.Tables[0].Rows[0]["字段名"]))
buf = (byte[])ds.Tables[0].Rows[0]["字段名"];
else
buf = null;
if (buf!=null)
len = buf.GetLength(0);
else
len = 0;
if(len!=0)
{
fs=System.IO.File.Create(this.fileName);
fs.Write(buf,0,len-5);
fs.Flush();
fs.Close();
i=1;
}
else
{
fs= System.IO.File.Open(this.TemplateName.ToString(),System.IO.FileMode.Open);
len = (int)fs.Length;
buf = new byte[len];
fs.Read(buf,0,len);
fs.Close();
fs=System.IO.File.Create(文件完整路径);
fs.Write(buf,0,len);
fs.Flush();
fs.Close();
i=2;
}
}
else
{
fs= System.IO.File.Open(this.TemplateName.ToString(),System.IO.FileMode.Open);
len = (int)fs.Length;
buf = new byte[len];
fs.Read(buf,0,len);
fs.Close();
fs=System.IO.File.Create("文件完整路径");
fs.Write(buf,0,len);
fs.Flush();
fs.Close();
i=2;
}
if(fs !=null)
{
fs.Close();
}
}
#endregion
#region 读取文件
private byte[] ReadFile(string filePath)
{
int LastPos;
String strFileExt; //文件后缀4位(包括点)
System.IO.FileStream fs; //文件流
int i;
byte[] FileData=null ;
long fLeng; //文件长度
try
{
if(filePath.Trim() != "")
{
//取文件后缀
LastPos=filePath.LastIndexOf(".");
strFileExt=filePath.Substring(LastPos);
//读取文件数据到流中
fs = new System.IO.FileStream(filePath, System.IO.FileMode.Open,System.IO.FileAccess.Read);
fLeng=fs.Length;
//开辟数组大小
FileData=new Byte[fLeng+4];
//从流中读数据到数组中
fs.Read(FileData,0,FileData.GetUpperBound(0));
fs.Flush();
//关闭文件
fs.Close();
//设置文件后缀值
for(i=0;i<4;i++)
{
char[] tempC=new char[]{' '};
if(i<=strFileExt.Length-1)
{
tempC=strFileExt.Substring(i,1).ToCharArray();
}
FileData[fLeng+i]=(byte)tempC[0];
}
}
return FileData;
}
catch
{
return null;
}
}
#endregion
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询