0

私は ASP.net プロジェクトを構築していますが、それは初めてです...

私はこの問題を抱えています:

textbox1 とボタン名 = フィルターとグリッド ビューを取得しました

あまりにもテーブルを持つデータベースがあります (マーク , コース )

textbox1 に文を書き、フィルター グリッド ビューを押してデータベースに接続し、textbox1 のコンテンツに従ってデータを取得する必要があります。

デフォルトでは、フィルターなしですべてのものをもたらします

作ったけどグリッドビューが出ないエラーではない

<table >
<tr>
<td colspan= "2" bgcolor="#4B6C9E"  >
<font color = white> Choose The Course :</font>
</td>
</tr>
<tr>
   <td> <asp:Label ID="Label1" runat="server" Text="Course :" ></asp:Label>
   </td>
    <td><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    </td>
    </tr>
    <tr>
    <td colspan = "2" align = "center">
    <asp:Button ID="Button1" runat="server" Text="Filter" />
    </td>
    </tr>
</table>

    <br />
<br />
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        DataSourceID="SqlDataSource1">
        <Columns>
            <asp:BoundField DataField="StdID" HeaderText="StdID" SortExpression="StdID" />
            <asp:BoundField DataField="Mark" HeaderText="Mark" SortExpression="Mark" />
            <asp:BoundField DataField="CourseID" HeaderText="CourseID" 
                SortExpression="CourseID" />
            <asp:BoundField DataField="StudentName" HeaderText="StudentName" 
                SortExpression="StudentName" />
            <asp:BoundField DataField="CourseName" HeaderText="CourseName" 
                SortExpression="CourseName" />
            <asp:BoundField DataField="Year" HeaderText="Year" SortExpression="Year" />
            <asp:BoundField DataField="Semester" HeaderText="Semester" 
                SortExpression="Semester" />
            <asp:BoundField DataField="Grade" HeaderText="Grade" SortExpression="Grade" />
        </Columns>
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
        SelectCommand="SELECT Marks.StdID, Marks.Mark, Marks.CourseID, Marks.StudentName, Course.CourseName, Course.Year, Course.Semester, Course.Grade FROM Marks INNER JOIN Course ON Marks.CourseID = Course.ID WHERE (Course.CourseName LIKE '@name')">
        <SelectParameters>
                 <asp:ControlParameter Name="name" ControlID="TextBox1" PropertyName="Text" DefaultValue="%" Type="String"  />
        </SelectParameters>
    </asp:SqlDataSource>

注:データベースでクエリを実行すると、完璧に機能しました

できるだけ早く助けてください

4

1 に答える 1

1

データソースからの行がない場合、Gridiview は何も表示しません。この句は間違っています "WHERE (Course.CourseName LIKE '@name'", you don't need to put @name within string, データベースは '@name' という名前のコースを検索し、パラメーターを直接 SQL 内に置きます。こちらです:

 SelectCommand="SELECT Marks.StdID, Marks.Mark, Marks.CourseID, Marks.StudentName, Course.CourseName, Course.Year, Course.Semester, Course.Grade FROM Marks INNER JOIN Course ON Marks.CourseID = Course.ID WHERE (Course.CourseName LIKE @name)"
于 2013-06-16T21:16:17.247 に答える