如何在ASP.NET中把图存入数据库,然后再在ASPX页面中显示!!(急,请高手指教)

要一个简单..完整..明了的..谢谢了...... 要一个简单..完整..明了的..谢谢了... 展开
 我来答
chenzhe0420
2008-01-23 · 超过29用户采纳过TA的回答
知道答主
回答量:216
采纳率:0%
帮助的人:0
展开全部
//写入数据库
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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式