帮忙做一个从文件对话框中读入一幅图片,然后点击按钮储存到数据库,再点击另外一个按钮,把图片从数据库中调用出来。

01403222 2003-08-24 10:25:16
最好大家帮忙做一个从文件对话框中读入一幅图片,然后点击按钮储存到数据库,再点击另外一个按钮,把图片从数据库中调用出来。
...全文
52 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
skydaxia 2004-02-13
  • 打赏
  • 举报
回复
public void Add(System.Web.HttpPostedFile PostFile,string TableName,string PicField,string PicTypeFiled,string PicSizeField,string AddCondition)
{
string FileType=PostFile.ContentType;
Int32 FileLength=PostFile.ContentLength;
Byte[] FileByteArray = new Byte[FileLength];
Stream StreamObject = PostFile.InputStream;
StreamObject.Read(FileByteArray,0,FileLength);
System.Web.HttpContext.Current.Response.End();

string strSQL=" Update " + TableName + " set " + PicField + "=@Image,"+ PicTypeFiled + "=@ContentType," + PicSizeField + "=@ImageSize where 1=1 And " + AddCondition;
if (isSQLDataBase)
{
SqlConnection ObjConn=new SqlConnection(Connectionstring);
ObjConn.Open();
SqlCommand ObjComm=new SqlCommand(strSQL,ObjConn);
ObjComm.Parameters.Add("@Image",System.Data.SqlDbType.Binary,FileLength).Value = FileByteArray;
ObjComm.Parameters.Add("@ContentType",SqlDbType.VarChar,20).Value = FileType;
ObjComm.Parameters.Add("@ImageSize", SqlDbType.Decimal,9).Value = FileLength;
ObjComm.ExecuteNonQuery();
ObjConn.Close();
}
else
{
OleDbConnection ObjConn=new OleDbConnection(Connectionstring);
ObjConn.Open();
OleDbCommand ObjComm=new OleDbCommand(strSQL,ObjConn);
ObjComm.Parameters.Add("@Image",System.Data.OleDb.OleDbType.Binary,FileLength).Value = FileByteArray;
ObjComm.Parameters.Add("@ContentType",System.Data.OleDb.OleDbType.VarChar,20).Value = FileType; //记录文件类型
ObjComm.Parameters.Add("@ImageSize",System.Data.OleDb.OleDbType.Numeric,9).Value = FileLength;
ObjComm.ExecuteNonQuery();
ObjConn.Close();
}
}
01403222 2004-02-11
  • 打赏
  • 举报
回复
谢谢
雪狼1234567 2003-08-24
  • 打赏
  • 举报
回复
/// <summary>
/// 添加图片到指定的数据表
/// </summary>
/// <param name="PostFile">上传图片的流</param>
/// <param name="TableName">数据表名称</param>
/// <param name="PicField">图片字段名称</param>
/// <param name="PicTypeFiled">图片类型字段名称</param>
/// <param name="PicSizeField">图片大小字段名称</param>
/// <param name="AddCondition">上传此图片的SQL条件(IE:UserID=1)</param>
public void AddPicture(System.Web.HttpPostedFile PostFile,string TableName,string PicField,string PicTypeFiled,string PicSizeField,string AddCondition)
{
if(PostFile==null)
throw new myException("上传文件的流不能够为空!");
//文件类型
string FileType=PostFile.ContentType;
//文件大小
Int32 FileLength=PostFile.ContentLength;
//图象文件临时储存Byte数组
Byte[] FileByteArray = new Byte[FileLength];
//建立数据流对像
Stream StreamObject = PostFile.InputStream;
//读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度
StreamObject.Read(FileByteArray,0,FileLength);
System.Web.HttpContext.Current.Response.End();

//生SQL语句
string strSQL=" Update " + TableName + " set " + PicField + "=@Image,"+ PicTypeFiled + "=@ContentType," + PicSizeField + "=@ImageSize where 1=1 And " + AddCondition;
//判断是否为SQLServer数据库
if (isSQLDataBase)
{
//此处为SQLServer数据库的处理
SqlConnection ObjConn=new SqlConnection(Connectionstring);
ObjConn.Open();
SqlCommand ObjComm=new SqlCommand(strSQL,ObjConn);
//添加参数
ObjComm.Parameters.Add("@Image",System.Data.SqlDbType.Binary,FileLength).Value = FileByteArray;
ObjComm.Parameters.Add("@ContentType",SqlDbType.VarChar,20).Value = FileType;
ObjComm.Parameters.Add("@ImageSize", SqlDbType.Decimal,9).Value = FileLength;
ObjComm.ExecuteNonQuery();
ObjConn.Close();
}
else
{
//此处为其他数据的处理,如Oracle
OleDbConnection ObjConn=new OleDbConnection(Connectionstring);
ObjConn.Open();
OleDbCommand ObjComm=new OleDbCommand(strSQL,ObjConn);
ObjComm.Parameters.Add("@Image",System.Data.OleDb.OleDbType.Binary,FileLength).Value = FileByteArray;
ObjComm.Parameters.Add("@ContentType",System.Data.OleDb.OleDbType.VarChar,20).Value = FileType; //记录文件类型
ObjComm.Parameters.Add("@ImageSize",System.Data.OleDb.OleDbType.Numeric,9).Value = FileLength;
ObjComm.ExecuteNonQuery();
ObjConn.Close();
}
}

saucer 2003-08-24
  • 打赏
  • 举报
回复
see

C# Photo Album Viewer
http://www.codeproject.com/cs/database/albumviewer.asp

110,500

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧