从Sql Server 2008检索图像数据 [英] Retrieve image data from Sql Server 2008

查看:90
本文介绍了从Sql Server 2008检索图像数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,

我能够将来自asp.net网站的图像数据存储到sql server 2008.

我代码: -

Hi all,
I am able to store the image data from asp.net site to sql server 2008.
I us following code:-

protected void Button1_Click(object sender, EventArgs e)
    {
        if (FileUpload1.PostedFile != null && FileUpload1.PostedFile.FileName != "")
        {

            byte[] myimage = new byte[FileUpload1.PostedFile.ContentLength];

            HttpPostedFile Image = FileUpload1.PostedFile;

            Image.InputStream.Read(myimage, 0,
            (int)FileUpload1.PostedFile.ContentLength);



            SqlConnection myConnection =
            new SqlConnection("Data Source =.;Initial Catalog= sandeep; Integrated Security= true");


            SqlCommand storeimage =
            new SqlCommand("INSERT INTO Iamge_Gallery "
            + "(Img_Id, Image_Content, Image_Type, Image_Size) "
            + " values (4, @image, @imagetype, @imagesize)"
            , myConnection);


            storeimage.Parameters.Add("@image",
            SqlDbType.Image, myimage.Length).Value = myimage;

            storeimage.Parameters.Add("@imagetype", SqlDbType.VarChar, 100).Value
            = FileUpload1.PostedFile.ContentType;

            storeimage.Parameters.Add("@imagesize", SqlDbType.BigInt, 99999).Value
            = FileUpload1.PostedFile.ContentLength;

            myConnection.Open();
            storeimage.ExecuteNonQuery();
            myConnection.Close();

            Response.Write("successfully upload the image");
        }
    }





但是多次尝试将图像数据从sql server表显示到图像控件。帮助我实现这一目标。非常有义务。

谢谢。



But tried many times to show image data from sql server table to a image control. Help me to accomplish that. Shall be greatly obliged.
Thank You.

推荐答案

你好,

这是你的完整代码:

服务器端(.cs文件):



protected void Button1_Click(object sender,EventArgs e)

{

if(FileUpload1.PostedFile!= null&&& FileUpload1.PostedFile.FileName!=)

{



byte [] myimage = new byte [FileUpload1.PostedFile.ContentLength];



HttpPostedFile Image = FileUpload1.PostedFile;



Image.InputStream.Read(myimage,0,

(int)FileUpload1.PostedFile.ContentLength);


$ b



SqlConnection myConnection =

新的SqlConnection(数据源= RASHED-PC;初始目录= TestDB; Integrated Security = true);





SqlCommand storeimage =

new SqlCommand(INSERT INTO Iamge_Gallery

+(Img_Id,Image_Content,Image_Type,Image_Size)

+values(4,@ image,@ imagetype,@ imagesize)

,myConnection);





storeimage.Parameters.Add(@ image,

SqlDbType.Image,myimage.Length).Value = myimage;



storeimage.Parameters.Add(@ imagetype,SqlDbType.VarChar,100).Value

= FileUpload1.PostedFile.ContentType;



storeimage.Parameters.Add(@ imagesize,SqlDbType.BigInt,99999).Value

= FileUpload1.PostedFile.ContentLength;



myConnection.Open();

storeimage.ExecuteNonQuery();

myConnection.Close();



Response.Write(成功上传图片);

GetImageFromDB();

}

}

private void GetImageFromDB()

{

byte [] myimage = new byte [FileUpload1.PostedFile.ContentLength] ;

HttpPostedFile Image = FileUpload1.PostedFile;

Image.InputStream.Read(myimage,0,

(int)FileUpload1.PostedFile.ContentLength );

string connStrName =Data Source = RASHED-PC; Initial Catalog = TestDB; Integrated Security = true;

string storeimage =SELECT [Img_Id],[Image_Content],[Image_Type],[Image_Size] FROM [TestDB]。[dbo]。[Iamge_Gallery];

DataTable dt = new DataTable();

SqlDataReader dr = null;

using(SqlConnection conn = new SqlConnection(connStrName))

{

SqlCommand cmd = new SqlCommand();

cmd.Connection = conn;

cmd.CommandText = storeimage;

cmd.CommandType = CommandType.Text;

conn.Open();

dr = cmd.ExecuteReader();

dt.Load(dr);

conn.Close();

cmd = null;

}



if(dt.Rows.Count> 0)

{

BindApplicantImage((byte [])dt.Rows [0 ] [林age_Content]);

}



Response.Write(成功上传图片);



}

private void BindApplicantImage(byte [] applicantImage)

{

string base64ImageString = ConvertBytesToBase64(applicantImage) ;

imgBox.ImageUrl =data:image / jpg; base64,+ base64ImageString;

}

公共字符串ConvertBytesToBase64(byte [] imageBytes)

{

返回Convert.ToBase64String(imageBytes);

}





客户端:

< form id =form1runat =server>

Hello,
Here is your complete code:
Server side(.cs file):

protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.PostedFile != null && FileUpload1.PostedFile.FileName != "")
{

byte[] myimage = new byte[FileUpload1.PostedFile.ContentLength];

HttpPostedFile Image = FileUpload1.PostedFile;

Image.InputStream.Read(myimage, 0,
(int)FileUpload1.PostedFile.ContentLength);



SqlConnection myConnection =
new SqlConnection("Data Source =RASHED-PC;Initial Catalog= TestDB; Integrated Security= true");


SqlCommand storeimage =
new SqlCommand("INSERT INTO Iamge_Gallery "
+ "(Img_Id, Image_Content, Image_Type, Image_Size) "
+ " values (4, @image, @imagetype, @imagesize)"
, myConnection);


storeimage.Parameters.Add("@image",
SqlDbType.Image, myimage.Length).Value = myimage;

storeimage.Parameters.Add("@imagetype", SqlDbType.VarChar, 100).Value
= FileUpload1.PostedFile.ContentType;

storeimage.Parameters.Add("@imagesize", SqlDbType.BigInt, 99999).Value
= FileUpload1.PostedFile.ContentLength;

myConnection.Open();
storeimage.ExecuteNonQuery();
myConnection.Close();

Response.Write("successfully upload the image");
GetImageFromDB();
}
}
private void GetImageFromDB()
{
byte[] myimage = new byte[FileUpload1.PostedFile.ContentLength];
HttpPostedFile Image = FileUpload1.PostedFile;
Image.InputStream.Read(myimage, 0,
(int)FileUpload1.PostedFile.ContentLength);
string connStrName="Data Source =RASHED-PC;Initial Catalog= TestDB; Integrated Security= true";
string storeimage ="SELECT [Img_Id],[Image_Content],[Image_Type],[Image_Size]FROM [TestDB].[dbo].[Iamge_Gallery]";
DataTable dt = new DataTable();
SqlDataReader dr = null;
using (SqlConnection conn = new SqlConnection(connStrName))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = storeimage;
cmd.CommandType = CommandType.Text;
conn.Open();
dr = cmd.ExecuteReader();
dt.Load(dr);
conn.Close();
cmd = null;
}

if (dt.Rows.Count>0)
{
BindApplicantImage((byte[])dt.Rows[0]["Image_Content"]);
}

Response.Write("successfully upload the image");

}
private void BindApplicantImage(byte[] applicantImage)
{
string base64ImageString = ConvertBytesToBase64(applicantImage);
imgBox.ImageUrl = "data:image/jpg;base64," + base64ImageString;
}
public string ConvertBytesToBase64(byte[] imageBytes)
{
return Convert.ToBase64String(imageBytes);
}


Client Side:
<form id="form1" runat="server">


< asp:fileupload id =FileUpload1runat =serverxmlns:asp =#unknown>

< asp:button id =Button1text =上传图片runat =serveronclick =Button1_Clickxmlns:asp =#unknown>




< asp:image id =imgBoxwidth =200pxheight =200pximageurl =runat =serverxmlns:asp =#unknown>


<asp:fileupload id="FileUpload1" runat="server" xmlns:asp="#unknown">
<asp:button id="Button1" text="Upload Image" runat="server" onclick="Button1_Click" xmlns:asp="#unknown">


<asp:image id="imgBox" width="200px" height="200px" imageurl="" runat="server" xmlns:asp="#unknown">



< / form>


</form>


在SQL Server中存储图像 [ ^ ]

使用标记过程和C#.net 从SQL Server存储和检索图像[ ^ ]
Store Images in SQL Server[^]
Storing and Retrieving Images from SQL Server Using Strored Procedures and C#.net[^]


这篇关于从Sql Server 2008检索图像数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆