2013-06-16 3 views
0

я построить проект ASP.net, но я новичок в этом ...подключения вид сетки к базе данных

Я получил эту проблему:

получил вид TextBox1 и кнопка имя = фильтра и сетки

есть база данных с таблицей тоже (знак, курс)

мне нужно, когда я пишу предложение в textBox1 и нажмите фильтр сетки зрения подключения к Databse и принимать данные в соответствии с содержанием 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> 

примечания: когда я выполнить запрос в базе данных его работало идеально

, пожалуйста, помогите так быстро, как вы можете

ответ

1

Gridiview doenst показать все, если нет строки, исходящей из источника данных. Этот раздел неверен. «WHERE (Course.CourseName LIKE« @name »», вам не нужно указывать @name внутри строки, база данных будет искать курс с именем «@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)" 
+0

Спасибо ... Это работает –

Смежные вопросы