我想从ASP.Net后端检索图像。使用SQL SERVER 2005作为后端。我已经尝试了n个代码,包括在线提供的代码。任何人都可以指导我解决这个问题。无法检索或存储数据库中的图像SQL Server 2005
我的代码如下
表设计: -
create table Image
(
ImageId Int identity (1,1),ImageName Varchar(50), Image image
)
代码: -
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGridData();
}
}
string strcon = "Data Source=SUJITHA\\SQLEXPRESS;Initial Catalog=master;Integrated Security=True";
protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
//getting length of uploaded file
int length = FileUpload1.PostedFile.ContentLength;
//create a byte array to store the binary image data
byte[] imgbyte = new byte[length];
//store the currently selected file in memeory
HttpPostedFile img = FileUpload1.PostedFile;
//set the binary data
img.InputStream.Read(imgbyte, 0, length);
string imagename =TextBox1.Text;
//use the web.config to store the connection string
SqlConnection connection = new SqlConnection(strcon);
connection.Open();
SqlCommand cmd = new SqlCommand("INSERT INTO Image (ImageName,Image) VALUES (@imagename,@imagedata)", connection);
cmd.Parameters.Add("@imagename", SqlDbType.VarChar, 50).Value = imagename;
cmd.Parameters.Add("@imagedata", SqlDbType.Image).Value = imgbyte;
int count = cmd.ExecuteNonQuery();
connection.Close();
if (count == 1)
{
BindGridData();
TextBox1.Text = string.Empty;
ScriptManager.RegisterStartupScript(this, this.GetType(), "alertmessage", "javascript:alert('" + imagename + " image inserted successfully')", true);
}
}
}
private void BindGridData()
{
SqlConnection connection = new SqlConnection(strcon);
SqlCommand command = new SqlCommand("SELECT ImageName,Image from [Image]", connection);
SqlDataAdapter daimages = new SqlDataAdapter(command);
DataTable dt = new DataTable();
daimages.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
GridView1.Attributes.Add("bordercolor", "black");
}
有一些特定的错误或异常类?你有什么迹象表明它不起作用?当你调试代码时,观察到的行为在什么时候偏离了预期的行为? – David
这是你在找什么:http://www.codeproject.com/Articles/10861/Storing-and-Retrieving-Images-from-SQL-Server-usin – Rumplin
你应该使用'VARBINARY(MAX)'数据类型 - 'IMAGE'已被SQL Server 2005弃用。 –