Abdul Baseer Yousofzai Ответов: 1

Конкретная запись, отображаемая в gridview


Привет,
спасибо за предыдущее решение, оно мне помогло.

сейчас я работаю над проектом, в котором мне нужно добавить продукты для конкретных клиентов, и я хочу показать запись этих конкретных клиентов в сетке-просмотр не всех из базы данных

эта производящая ошибка говорит о неправильном синтаксисе рядом с тем, где.

с нетерпением жду хорошего решения.

с уважением.
АБК

Что я уже пробовал:

<asp:GridView ID="grdProductType" runat="server" CssClass="table table-striped table-bordered table-condensed" AutoGenerateColumns="False" AllowPaging="True" PageSize="15" OnPageIndexChanging="grdProductType_PageIndexChanging" OnRowDataBound="grdProductType_RowDataBound">
                       <Columns>
                           <asp:TemplateField HeaderText="Sno">
                               <EditItemTemplate>
                                   <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                               </EditItemTemplate>
                               <ItemTemplate>
                                   <asp:Label ID="lblSno" runat="server"></asp:Label>
                               </ItemTemplate>
                           </asp:TemplateField>
                           <asp:BoundField HeaderText="Trader Company Name" DataField="CompanyName" />
                           <asp:BoundField HeaderText="Product Type" DataField="ProductType" />
                           <asp:BoundField HeaderText="Product " DataField="ProductName" />
                       </Columns>
                       <FooterStyle BorderStyle="None" Wrap="False" />
                       <HeaderStyle BackColor="#4989C1" BorderColor="#4989C1" BorderStyle="Solid" BorderWidth="0.75pt" ForeColor="White" HorizontalAlign="Center" VerticalAlign="Middle" />
                       <PagerStyle BorderStyle="Solid" HorizontalAlign="Center" VerticalAlign="Middle" />
                   </asp:GridView>


а внутреннее кодирование выглядит следующим образом


загрузка страниц


protected void Page_Load(object sender, EventArgs e)
       {
           if (Session["TraderID"] != null)
               GetCompnayInfo(hdID.Value = Session["TraderID"].ToString());

              Fillgrid();
       }



и функция FillGrid как

protected void Fillgrid()
      {
          DataTable dt = new DataTable();
          dt = obj.GetData(@"SELECT t.TraderId,t.CompanyName,zpt.ProductTypeID,zpt.ProductType,zp.ProductID,zp.ProductName,zp.ProductCode
          FROM TraderCompanyProfile t
          INNER JOIN TraderCompnayProducts tcs ON t.TraderId=tcs.TradeID
          INNER JOIN zProductType zpt ON tcs.ProductTypeID=zpt.ProductTypeID
          INNER JOIN zProduct zp ON tcs.ProductID=zp.ProductID ORDER BY t.CompanyName,zpt.ProductType,zp.ProductName where t.TraderId='" + Session["TraderID"].Tostring() + "'");
          grdProductType.DataSource = dt;
          grdProductType.DataBind();

      }

1 Ответов

Рейтинг:
6

CHill60

Предложение ORDER BY должно следовать за предложением WHERE.
Вы также должны использовать параметризованный запрос[^] вместо сцепленных строк при создании SQL-запросов. Это не только помогает избежать атак SQL-инъекций, но и помогает при построении запроса, избегая проблем с одинарными кавычками и т. д.
Например (Примечание - это не было проверено, и я не исправил проблему с параметром)

dt = obj.GetData(@"SELECT t.TraderId,t.CompanyName,zpt.ProductTypeID,zpt.ProductType,zp.ProductID,zp.ProductName,zp.ProductCode
          FROM TraderCompanyProfile t
          INNER JOIN TraderCompnayProducts tcs ON t.TraderId=tcs.TradeID
          INNER JOIN zProductType zpt ON tcs.ProductTypeID=zpt.ProductTypeID
          INNER JOIN zProduct zp ON tcs.ProductID=zp.ProductID where t.TraderId=@sesh Session["TraderID"].Tostring() + "' ORDER BY t.CompanyName,zpt.ProductType,zp.ProductName ");