2012-12-09 1 views
0

이것은 SqlDataSource 및 GridView를 사용한 첫 번째 경험이며 ASP.Net을 처음 사용하기 때문에 이러한 작업을하는 데 어려움을 겪고 있습니다.GridView의 작동에 어려움을 겪고있는 새내기

양식 텍스트 상자에서 오는 SQL 쿼리의 변수를 사용하여 SqlDataSource에서 GridView를 만들고 싶습니다. 폼 변수 부분없이 쿼리 및 GridView를 사용할 수 있습니다. 여기에 내가 무엇을 가지고 :

<form id="form1" runat="server"> 
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:CUBE %>" 
    ProviderName="<%$ ConnectionStrings:CUBE.ProviderName %>" 
    SelectCommand="SELECT csono, citemno, nordqty, nseq, nprice, cdescript, nsalesamt FROM dbo.sostrs WHERE (LTRIM(csono) = @csono) ORDER BY nseq"> 
    <selectparameters> 
     <asp:controlparameter name="csono" controlid="frmSONum" propertyname="Text"/> 
    </selectparameters> 
</asp:SqlDataSource> 

<asp:TextBox ID="frmSONum" runat="server"></asp:TextBox> 
<asp:Button ID="Button1" runat="server" Text="Button" /> 

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    DataSourceID="SqlDataSource1" CellPadding="4" ForeColor="#333333" 
    GridLines="None"> 
    <AlternatingRowStyle BackColor="White" /> 
    <Columns> 
     <asp:BoundField DataField="citemno" HeaderText="citemno" 
      SortExpression="citemno" /> 
     <asp:BoundField DataField="cdescript" HeaderText="cdescript" 
      SortExpression="cdescript" /> 
     <asp:BoundField DataField="nordqty" HeaderText="nordqty" 
      SortExpression="nordqty" /> 
     <asp:BoundField DataField="nprice" HeaderText="nprice" 
      SortExpression="nprice" /> 
     <asp:BoundField DataField="nsalesamt" HeaderText="nsalesamt" 
      SortExpression="nsalesamt" /> 
    </Columns> 
    <EditRowStyle BackColor="#7C6F57" /> 
    <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" /> 
    <HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" /> 
    <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" /> 
    <RowStyle BackColor="#E3EAEB" /> 
    <SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" /> 
    <SortedAscendingCellStyle BackColor="#F8FAFA" /> 
    <SortedAscendingHeaderStyle BackColor="#246B61" /> 
    <SortedDescendingCellStyle BackColor="#D4DFE1" /> 
    <SortedDescendingHeaderStyle BackColor="#15524A" /> 
</asp:GridView> 
</form> 

나는이 오류가 얻을 수있는 그대로 내가 폼을 실행 : "?"

ERROR [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Must declare the variable '@csono'. 

답변

0

가 "@csono"변경을 SQL 쿼리 및 예상대로 작동합니다.

0
SELECT 
    /**/ 
    ,csono 
    --,insert more select stuff 
FROM 
    yourTableName 
WHERE 
    csono = @csono 

일반적으로 다음과 같은 행을 추가하십시오.

conn.Open(); 
cmd.Parameters.AddWithValue("@csono", yourValueHere); 

이것은 악의적 인 사람들이 데이터베이스에 테이블과 재미있는 물건을 삭제하는 데 사용하는 것입니다 SQL 주입을 방지 할 수 있습니다.

자세한 정보는 여기에 있습니다. https://msdn.microsoft.com/en-us/library/ff648339.aspx?f=255&MSPPError=-2147217396

관련 문제