帮忙做一个从文件对话框中读入一幅图片,然后点击按钮储存到数据库,再点击另外一个按钮,把图片从数据库中调用出来。 seeC# Photo Album Viewerhttp://www.codeproject.com/cs/database/albumviewer.asp 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /// <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(); } } 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(); } } 几道算法题目。研究研究 C# 调用exe程序的问题 子菜单是否可以做直接弹出? 矛盾啊,大伙儿来帮我解决下 ListView控件中的右键菜单问题 急急,两个List之间赋值方法 ActiveX 控件 C#一个很基础的问题,各位不要嫌简单啊. 有关操作XML文档和WebBrowser几个问题? 关于数据库访问的问题,谢谢 如何将excel文件不出现保存提示窗口 一个关于网络物理层连通的问题
/// 添加图片到指定的数据表
/// </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();
}
}
{
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();
}
}