我把图片路径储存在sql里,我把路径当字段读取,但是我读取不出来,请大家帮忙,我用C#

解决方案 »

  1.   

    select 图片路径字段 from tb
      

  2.   

    如果图片路径用的是text,image等类型
    READTEXT
    读取 text、ntext 或 image 列中的 text、ntext 或 image 值,从指定的偏移量开始读取指定的字节数。语法
    READTEXT { table.column text_ptr offset size } [ HOLDLOCK ] 参数
    table.column是从中读取的表和列的名称。表名和列名必须符合标识符的规则。必须指定表名和列名,不过可以选择是否指定数据库名称和所有者名称。text_ptr有效文本指针。text_ptr 必须是 binary(16)。offset开始读取 text、image 或 ntext 数据之前跳过的字节数(使用 text 或 image 数据类型时)或字符数(使用 ntext 数据类型时)。使用 ntext 数据类型时,offset 是在开始读取数据前跳过的字符数。使用 text 或 image 数据类型时,offset 是在开始读取数据前跳过的字节数。 size是要读取数据的字节数(使用 text 或 image 数据类型时)或字符数(使用 ntext 数据类型时)。如果 size 是 0,则表示读取了 4 KB 字节的数据。HOLDLOCK使文本值一直锁定到事务结束。其他用户可以读取该值,但是不能对其进行修改。注释
    使用 TEXTPTR 函数获得有效的 text_ptr 值。如果返回不止一行,TEXTPTR 将返回指向指定行中的 text、ntext 或 image 列的指针,或返回指向查询所返回的最后一行中的 text、ntext 或 image 列的指针。由于 TEXTPTR 返回 16 字节的二进制字符串,所以最好声明一个控制文本指针的局部变量,然后在 READTEXT 中使用该变量。有关声明局部变量的更多信息,请参见 DECLARE @local_variable。 在 SQL Server 2000 中可能存在无效的文本指针。有关 text in row 选项的更多信息,请参见 sp_tableoption。有关如何使文本指针无效的更多信息,请参见 sp_invalidate_textptr。如果 @@TEXTSIZE 函数的值小于为 READTEXT 指定的大小,它将替代为 READTEXT 指定的大小。@@TEXTSIZE 函数是对由 SET TEXTSIZE 语句设置的返回数据字节数的限制。有关如何设置 TEXTSIZE 会话设置的更多信息,请参见 SET TEXTSIZE。权限
    READTEXT 权限默认授予对指定的表具有 SELECT 权限的用户。这些权限可在传递 SELECT 权限时传递。示例
    下例读取 pub_info 表中 pr_info 列的第 2 个至第 26 个字符。USE pubs
    GO
    DECLARE @ptrval varbinary(16)
    SELECT @ptrval = TEXTPTR(pr_info) 
       FROM pub_info pr INNER JOIN publishers p
          ON pr.pub_id = p.pub_id 
          AND p.pub_name = 'New Moon Books'
    READTEXT pub_info.pr_info @ptrval 1 25
    GO
      

  3.   

    我把图片路径储存在sql里,我把路径当字段读取,但是我读取不出来,请大家帮忙,我用C#----
    字段怎么读不出来呢
      

  4.   

      photopath                     photoname
    E:\Photo\other                   1.jpg     这样,我是读取成功,但是却显示不出来. 
     "select * from T_savephoto where photoname= '" + sname + "'and photopath='"+spath+"'";
      

  5.   

    我想在pictureBox1上显示,但是显示不了.
      

  6.   

    sql当然没法给你显示了,它只是取到图片路径字符串.显示操作要交给你的前端程序和html代码.不过你显示不出来,可能是因为像存储的时候设置有问题,存本地的绝对路径当然是不行的.这样webpage或winform在被客户端使用时,实际上读的是当前客户端 e:\photo\other\1.jpg,能显示出来那就说明你程序很强了,能随意往客户的盘里写文件了.比如,你的是web系统, 图片存放目录为web服务器e:\photo\other,  ,web站点路径为e:\, 比如你的主页放在e:\default.aspx ,那么图片路径应该存为 photo\other
    然后,<img src="<%=Eval(这个路径字段容器)%>" />
    或者存为 other的话, 那么 ,<img src="photo/<%=Eval(这个路径字段容器)%>" />
      

  7.   

    先随便写个正确的图片地址,看控件设置是否正确?然后再把从SQL里面取出来的图片地址放进去.
      

  8.   

    你们可以写个代码给我吗?
    string sSQL = "select * from T_savephoto where photoname= '" + name + "'and photopath='"+spath+"'";
                    conn = new SqlConnection(Sconn);
                    conn.Open();
                    SqlCommand cmd = new SqlCommand(sSQL, conn);
                    SqlDataReader rdr = cmd.ExecuteReader();
                   if (rdr.Read())
                   MessageBox.Show("OK");我运行到这里都成功,但是就不会显示图片
      

  9.   

    但是我固定读取一张,像e:\photo\other\1.jpg,是能显示,我现在的是winform,
    原理是这样,在textbox.text里输入图片ID,按下btn就在下面的pictureBox1显示相应的ID图片.
      

  10.   


    用datalist或者datagrid绑定时显示:
    前台绑定写法:
    <asp:datalist id="DataList4" runat="server" CellPadding="0" Width="100%">
    <ItemTemplate>
    <TABLE >
    <TR>
    <TD width="150"> <asp:Image id=Image1 runat="server" Width="150px" ImageUrl='<%# DataBinder.Eval(Container, "DataItem.Image") %>' Height="110px">
    </asp:Image></TD> </TR>
    </TABLE>
    </ItemTemplate>
    </asp:datalist>后台:
    string   sSQL   =   "select   *   from   T_savephoto   where   photoname=   '"   +   name   +   "'and   photopath='"+spath+"'"; 
    using(SqlConnection con=new SqlConnection(Sconn))
    {
    SqlDataAdapter da=new SqlDataAdapter("select   *   from   T_savephoto   where   photoname=   '"   +   name   +   "'and   photopath='"+spath+"'"); 
    DataSet ds=new DataSet();
    da.Fill(ds);
    this.DataList4.DataSource=ds();
    this.DataList4.DataBind();  
      

  11.   

    把读出来的地址放IE或windows的运行里面运行一下,看图片是否存在?
      

  12.   


    只一张图片就不需要用datalist这些控件了。直接用个公共变量就完事了。
    前台:
    <IMG src=<%= image %>'>
    后台定义一个公共变量public string image;
    然后在你按下btn后,给这个变量赋你从数据库里取出来的字段的值就行了。 。
      

  13.   

    掉了个'号
    <IMG src='<%= image %>'>
      

  14.   

    asp.net代码我不会看.我知道16楼的返回DataSet 数据,可能你在网页上能显示吧,但是我的winform 上却显示不了
      

  15.   


    只一张图片就不需要用datalist这些控件了。直接用个公共变量就完事了。
    前台:
    <IMG src='<%= image %>'>
    后台定义一个公共变量public string image;
    然后在你按下btn后,给这个变量赋你从数据库里取出来的字段的值就行了。 。
    ----------------
    那这样呢?会在winform里面使用不?
      

  16.   

    pda sqlce
    你先试一下把路径取到文本框里,没有问题的话就是前台的问题SqlCeConnection CeCon = new SqlCeConnection("DataSource=PDAtest.sdf");
                
    SqlCeDataAdapter CeAda = new SqlCeDataAdapter("select * from aa where id = '"+TxtDemo.Text+"'", CeCon);
    DataTable dt = new DataTable();
    CeAda.Fill(dt);
    this.DGDemo.DataSource = dt;
      

  17.   

    select   图片路径字段   from   tb
      

  18.   

    winform:
    图片放在e:\photo\other\1.jpg,2.jpg,3.jpg等
    PPC:
    \MY Documents\1.jpg
    我再试试
      

  19.   

    你的问题在于用浏览器读取图片还是用其他的?
    如果是要用浏览器访问就需要用相对路径如:http://域名/路径/图片,而不是e:\目录\图片。
    不知道我说的清楚不?