我在数据库中某表的一个字段productPhoto类型为Image(16),请问给如何对其进行存取?最好能用C#写出代码,在线等,谢谢!
解决方案 »
- URL重写的例子
- ASP.NET网站通过什么控件调用数据库数据,显示出一条一条的帖子内标题
- 网站突然无法访问,重启服务器后正常
- 什么地方要用到接口?怎么用接口?什么的情况下才需要用到接口呢?
- 新闻的推荐功能如果实现
- 请教,在web应用如何访问 条码 扫描仪设备?
- 好奇怪的问题啊!!!!!!!!!!!!!!!!!!!!!!!!
- System.Security.SecurityException
- mvc3 Json绑定模型
- 100份求助,ASP.NET单元测试的问题!!
- windows 2003 下如何调刷新率?
- vs.net2003+Sqlserver2000,做的网站,做好后,在上传到空间上之前,webconfig要做何变动,另外 bin里的 pdb文件是否要与dll 文件一丐上传
http://dotnet.aspx.cc/ShowDetail.aspx?id=2A5DD7C6-A45A-48AB-A2E8-342A29F17506
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.IO;
using System.Configuration;namespace UploadImageToSqlserver
{
/// <summary>
///上传图片到数据库存储
/// </summary>
public class UploadImage : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.Label lblMessage;
protected System.Web.UI.WebControls.TextBox txtDescription;
protected System.Web.UI.HtmlControls.HtmlInputFile UP_File;
protected System.Web.UI.WebControls.LinkButton LinkButton1;
protected Int32 FileLength = 0;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.LinkButton1.Click += new System.EventHandler(this.LinkButton1_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void Button1_Click(object sender, System.EventArgs e)
{
HttpPostedFile UpFile = UP_File.PostedFile;//HttpPostedFile对象,用于读取图象文件属性
FileLength = UpFile.ContentLength;
try
{
if(FileLength == 0)
{
lblMessage.Text = "<b>请选择您要上传的文件</b>";
}
else
{
Byte[] FileByteArray = new byte[FileLength]; //图象文件临时储存Byte数组
Stream StreamObj = UpFile.InputStream;//建立数据流对像
//读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度
StreamObj.Read(FileByteArray,0,FileLength);
SqlConnection Con = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
String SqlCmd = "INSERT INTO ImageStore (ImageData, ImageContentType, ImageDescription, ImageSize) VALUES (@Image, @ContentType, @ImageDescription, @ImageSize)";
SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);
CmdObj.Parameters.Add("@Image",SqlDbType.Binary, FileLength).Value = FileByteArray;
CmdObj.Parameters.Add("@ContentType", SqlDbType.VarChar,50).Value = UpFile.ContentType;//记录文件类型
//把其它单表数据记录上传
CmdObj.Parameters.Add("@ImageDescription", SqlDbType.VarChar,200).Value = txtDescription.Text;
//记录文件长度,读取时使用
CmdObj.Parameters.Add("@ImageSize", SqlDbType.BigInt,8).Value = UpFile.ContentLength;
Con.Open();
CmdObj.ExecuteNonQuery();
Con.Close();
lblMessage.Text = "<p><b>OK!你已经成功上传你的图片</b>";//提示上传成功 }
}
catch(Exception ex)
{
lblMessage.Text = ex.Message.ToString();
} } private void LinkButton1_Click(object sender, System.EventArgs e)
{
Response.Redirect("ViewImage.aspx");
}
}
}using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Configuration;
using System.IO;
using System.Drawing;namespace UploadImageToSqlserver
{
/// <summary>
/// 从数据库中取出图片并显示在网页中。
/// </summary>
public class ViewImage : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DropDownList DdlImageId;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
//建立数据库链接
if(!IsPostBack)
{
BindDropDownList();
}
}
private void BindDropDownList()
{
SqlConnection Con = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
String SqlCmd = "SELECT ImageID FROM ImageStore";
SqlDataAdapter CmdObj = new SqlDataAdapter(SqlCmd, Con);
DataSet ds = new DataSet();
CmdObj.Fill(ds,"ImageId"); DdlImageId.DataSource = ds.Tables["ImageId"].DefaultView;
DdlImageId.DataTextField = "ImageID";
DdlImageId.DataValueField = "ImageID";
DdlImageId.DataBind();
DdlImageId.Items.Insert(0, "请选择");
DdlImageId.SelectedIndex = 0; Con.Close();
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DdlImageId.SelectedIndexChanged += new System.EventHandler(this.DdlImageId_SelectedIndexChanged);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion protected void DdlImageId_SelectedIndexChanged(object sender, System.EventArgs e)
{
int ImgID = Convert.ToInt32(DdlImageId.SelectedValue);
SqlConnection Con = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
String SqlCmd = "SELECT * FROM ImageStore WHERE ImageID = @ImageID";
SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);
CmdObj.Parameters.Add("@ImageID", SqlDbType.Int).Value = ImgID;
Con.Open();
SqlDataReader SqlReader = CmdObj.ExecuteReader();
SqlReader.Read();
Response.ContentType = (string)SqlReader["ImageContentType"];//设定输出文件类型
//输出图象文件二进制数制
Response.OutputStream.Write((byte[])SqlReader["ImageData"], 0, (int)SqlReader["ImageSize"]);
Response.BufferOutput = true;
Con.Close();
}
}
}