C# 如何将sql查询中的数据设置到gridview模板字段中

C# 如何将sql查询中的数据设置到gridview模板字段中,c#,asp.net,C#,Asp.net,在我的SQL查询中,我检索了3个字符串,第3个字符串有一个URL。我创建了2个templatefield,其中包含标签和另一个带有图像的模板。现在我想设置两个标签的值,并通过设置ImageUrl查看图像,并显示SQL查询中的所有行 protected void Page_Load(object sender, EventArgs e) { //if (IsPostBack == false) //{ // grdMaterial.DataBind(); //

在我的SQL查询中,我检索了3个字符串,第3个字符串有一个URL。我创建了2个templatefield,其中包含标签和另一个带有图像的模板。现在我想设置两个标签的值,并通过设置ImageUrl查看图像,并显示SQL查询中的所有行

protected void Page_Load(object sender, EventArgs e)
{
    //if (IsPostBack == false)
    //{
    //    grdMaterial.DataBind();
    //}
    try
    {
        matType = int.Parse(Session["mattype"].ToString());
        colorId = int.Parse(Session["color"].ToString());
        matStyleId = int.Parse(Session["matstyle"].ToString());
        try
        {
            matContent = Session["matContent"].ToString();
        }
        catch
        {
            panAval.Visible = true;
            panNew.Visible = false;
            dtab = new DBHELPER().getdataTable("SELECT [item_Id],[mat_Content],[mat_Image] FROM [item] WHERE [mat_Content]='" + matContent + "'");
            //grdMaterial.DataSource = dtab;
            //grdMaterial.DataBind();



    }
    catch (Exception ee)
    {
    }

}

protected void grdMaterial_Load(object sender, EventArgs e)
{
    try
    {
        for (int i = 0; i < dtab.Rows.Count; i++)
        {
            //TextBox x = (TextBox)GridViewCarrinho.Rows[row.RowIndex].Cells[2].FindControl("txtQuantidade");


            Label itemId = (Label)grdMaterial.FindControl("lblItemId");
            itemId.Text = dtab.Rows[i]["item_Id"].ToString();

            Label matContent = (Label)grdMaterial.FindControl("lblItemName");
            matContent.Text = dtab.Rows[i]["mat_Content"].ToString();

            Image itemImage = (Image)grdMaterial.FindControl("imgItemImage");
            itemImage.ImageUrl = dtab.Rows[i]["mat_Image"].ToString();

        }
    }
    catch (Exception ee)
    {
    }
}
受保护的无效页面加载(对象发送方,事件参数e)
{
//如果(IsPostBack==false)
//{
//grdMaterial.DataBind();
//}
尝试
{
matType=int.Parse(会话[“matType”].ToString());
colorId=int.Parse(会话[“color”].ToString());
matStyleId=int.Parse(会话[“matstyle”].ToString());
尝试
{
matContent=会话[“matContent”].ToString();
}
抓住
{
panAval.Visible=true;
panNew.Visible=false;
dtab=new DBHELPER().getdataTable(“从[item]中选择[item_Id]、[mat_内容]、[mat_图像],其中[mat_内容]='“+matContent+””);
//grdMaterial.DataSource=dtab;
//grdMaterial.DataBind();
}
捕获(异常ee)
{
}
}
受保护的void grdMaterial_加载(对象发送方,事件参数e)
{
尝试
{
for(int i=0;i
此事件:GRD材料负载似乎没有必要

您可以简单地将数据源绑定到datagrid,简单地定制datagrid以获取图像,并填充标签

只需绑定ItemID和ItemName列,然后为图像创建一个模板字段,如下所示

<asp:GridView ID="grdMaterial" runat="server" DataKeyNames="item_Id" AutoGenerateColumns="False">
    <Columns>
        <asp:BoundField DataField="item_Id" HeaderText="Item Id" />
        <asp:BoundField DataField="mat_Content" HeaderText="Item Name"  />
        <asp:TemplateField ShowHeader="false">
            <ItemTemplate>
                <asp:Image ID="imgItemImage" runat="server" ImageUrl="<%# DataBinder.Eval(Container.DataItem, "mat_Image")) %>" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

Wow。您已经在标题中发布了实际问题。标题用于用几个词来描述问题。查看其他人如何提问。