从SQL Server表图像asp.net图像控制 [英] Image from SQL Server Table to asp.net image control

查看:127
本文介绍了从SQL Server表图像asp.net图像控制的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  CMD的SqlCommand =新的SqlCommand(选择前1(CMTID),COMMENT,从FTAB ORDER BY CMTID DESC标题,康恩);
conn.Open();
SqlDataReader的SDR = cmd.ExecuteReader();
如果(sdr.Read()==真)
{
    lblHead.Text = SDR [标题]的ToString()。
    lblData.Text = SDR [COMMENT]的ToString()。}
conn.Close();

这是code从表正常数据值reterive现在我想从保存为二进制数据的SQL服务器获得的画面,美元的底部。ç$ C提,所以我想reterive的图像控制画面asp.net的,请指导我。

 如果(FileUpload1.HasFile)
    {
        conn.Close();
        串SqlQery;
        SqlQery =选择FTAB MAX(CMTID);
        的SqlCommand cmdid =新的SqlCommand(SqlQery,康涅狄格州);
        conn.Open();
        MaxID =(int)的(cmdid.ExecuteScalar())+ 1;
        conn.Close();
        字节[] = IMG新的字节[FileUpload1.PostedFile.ContentLength]
        HttpPostedFile myimg = FileUpload1.PostedFile;
        myimg.InputStream.Read(IMG,0,FileUpload1.PostedFile.ContentLength);
        CMD的SqlCommand =新的SqlCommand(插入FTAB(CMTID,IMAGEDT,COMMENT DATETM,标题)值(@ imgid,@形象,@评论,@ datetm,@标题),conn);在        的SqlParameter imgid =新的SqlParameter(@ imgid,SqlDbType.Int);
        imgid.Value = MaxID;
        cmd.Parameters.Add(imgid);        上传的SqlParameter =新的SqlParameter(@形象,SqlDbType.Image);
        uploading.Value = IMG;
        cmd.Parameters.Add(上传);        的SqlParameter cmtt =新的SqlParameter(@评论,SqlDbType.NVarChar);
        cmtt.Value = RadTextBox3.Text;
        cmd.Parameters.Add(cmtt);        的SqlParameter DTTM =新的SqlParameter(@ datetm,SqlDbType.DateTime);
        dttm.Value = DateTime.Now;
        cmd.Parameters.Add(DTTM);        的SqlParameter hhding =新的SqlParameter(@标题,SqlDbType.NVarChar);
        hhding.Value = RadTextBox8.Text;
        cmd.Parameters.Add(hhding);        conn.Open();
        cmd.ExecuteNonQuery();
        conn.Close();
        lblHead.Text =图片上传;
    }
    其他
    {
        lblHead.Text =没有选择的文件;
    }


解决方案

试试这个

  CMD的SqlCommand =新的SqlCommand(从FTAB选择IMAGEDT,新的SqlConnection(连接字符串));
对象数据= cmd.ExecuteScalar();
字节[] = imgBytes(字节[])的数据;System.Web.UI.WebControls.Image IMG =新System.Web.UI.WebControls.Image();字符串文件路径=使用Server.Mappath(TEMP)+//+IMG+ DateTime.Now.Ticks.ToString()+PNG;
的FileStream FS = File.Create(文件路径);
fs.Write(imgBytes,0,imgBytes.Length);
fs.Flush();
fs.Close();img.ImageUrl =文件路径;

不过,我会说这是不是做的最好方法,您应在上传的图片的文件保存在您的网站并保存文件的路径在数据库中。

SqlCommand cmd = new SqlCommand("select top 1(CMTID),COMMENT,HEADING from FTAB ORDER BY CMTID DESC", conn);
conn.Open();
SqlDataReader sdr = cmd.ExecuteReader();
if (sdr.Read() == true)
{
    lblHead.Text = sdr["HEADING"].ToString();
    lblData.Text = sdr["COMMENT"].ToString();

}
conn.Close();

that is the code for normal data value reterive from table now I want to get Picture from sql server that save as Binary data that code mention in bottom., so I want to reterive picture on Image control of asp.net so please guide me .

if (FileUpload1.HasFile)
    {
        conn.Close();
        String SqlQery;
        SqlQery = "select max(CMTID) from FTAB";
        SqlCommand cmdid = new SqlCommand(SqlQery, conn);
        conn.Open();
        MaxID = (int)(cmdid.ExecuteScalar()) + 1;
        conn.Close();
        byte[] img = new byte[FileUpload1.PostedFile.ContentLength];
        HttpPostedFile myimg = FileUpload1.PostedFile;
        myimg.InputStream.Read(img, 0, FileUpload1.PostedFile.ContentLength);
        SqlCommand cmd = new SqlCommand("insert into FTAB (CMTID,IMAGEDT,COMMENT,DATETM,HEADING) values (@imgid,@image,@comment,@datetm,@heading)", conn);

        SqlParameter imgid = new SqlParameter("@imgid",SqlDbType.Int);
        imgid.Value = MaxID;
        cmd.Parameters.Add(imgid);

        SqlParameter uploading = new SqlParameter("@image", SqlDbType.Image);
        uploading.Value = img;
        cmd.Parameters.Add(uploading);

        SqlParameter cmtt = new SqlParameter("@comment", SqlDbType.NVarChar);
        cmtt.Value = RadTextBox3.Text;
        cmd.Parameters.Add(cmtt);

        SqlParameter dttm = new SqlParameter("@datetm", SqlDbType.DateTime);
        dttm.Value = DateTime.Now;
        cmd.Parameters.Add(dttm);

        SqlParameter hhding = new SqlParameter("@heading", SqlDbType.NVarChar);
        hhding.Value = RadTextBox8.Text;
        cmd.Parameters.Add(hhding);

        conn.Open();
        cmd.ExecuteNonQuery();
        conn.Close();
        lblHead.Text = "Image uploaded";
    }
    else
    {
        lblHead.Text = "No file selected";
    }

解决方案

Try this

SqlCommand cmd = new SqlCommand("select IMAGEDT from FTAB", new SqlConnection("your connection string"));
object data = cmd.ExecuteScalar();
byte[] imgBytes = (byte[])data;

System.Web.UI.WebControls.Image img = new System.Web.UI.WebControls.Image();

string filePath = Server.MapPath("temp") + "//" + "img"+DateTime.Now.Ticks.ToString()+".png";
FileStream fs = File.Create(filePath);
fs.Write(imgBytes, 0, imgBytes.Length);
fs.Flush();
fs.Close();

img.ImageUrl = filePath;

But I would say this isn't the best way to do it, you should save your uploaded images as files as in your website and save the path of that file in your database.

这篇关于从SQL Server表图像asp.net图像控制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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