从SQL数据库中检索URL并在ASP.NET中的转发器中显示图像

时间:2017-04-01 15:56:38

标签: c# sql asp.net

所以基本上它是一个图像上传器和图像查看器项目。

我可以将图片上传到本地文件夹,只需将图片网址保存在数据库中,看起来像Image database

现在接下来,用户应该能够根据所选的palbum和pcat查看图像。 palbum =专辑名称。 pcat = Public,Private等(忽略第一个pcat是动物)。

现在在第1页上,我的代码将是:

protected void btn_view_Click(object sender, EventArgs e)
    {


        Response.Redirect("viewimage.aspx?album='"+DropDownList_album.SelectedValue+"'&cat='"+DropDownList_category.SelectedValue+"'");
    }

在第2页上,我已经应用了转发器,并且只想根据查询显示这些图片。

protected void Page_Load(object sender, EventArgs e)
    {
        string album = Request.QueryString["album"];
        string cat = Request.QueryString["cat"];


        SqlConnection con = new SqlConnection(" *hiding this* ");
        con.Open();

        string cmd = "select * from Pics where palbum='" + Request.QueryString["album"].ToString() + "' and pcat='" + Request.QueryString["cat"].ToString() +"'";     // have tried replacing select purl with select * but same problem.

        SqlDataAdapter adp = new SqlDataAdapter(cmd, con);

        DataTable dt = new DataTable();

        adp.Fill(dt);

        Repeater1.DataSource = dt;
        Repeater1.DataBind(); 
    }

但每次我尝试使用不同的语法时,我不会得到一个空白的屏幕,转发器中没有图像或此错误:

enter image description here

2 个答案:

答案 0 :(得分:1)

根据SQL Server参数的不同,如果我没记错{@ 1}}参数,则不接受双引号。

你有一个隐藏的问题,可能很麻烦,称为SQL注入。 Yous应该使用参数化查询完全消除这两个问题:

SqlConnection con = new SqlConnection(“隐藏此”);         con.Open();

quote_identifier

答案 1 :(得分:0)

实际上我忘了将ItemTemplate标签放在Repeater中,因此我没有得到输出。抱歉的家伙