0
특정 행의 '업데이트'버튼을 눌렀을 때 '질문'입력란을 업데이트하려고합니다. 나는 '편집'버튼을 눌렀을 때 텍스트를 변경할 수 있지만 '업데이트'버튼을 누르면 원래 값으로 되돌아갑니다. 아무것도 데이터베이스에서 변경되지 않습니다.왜 내 GridView가 업데이트되지 않습니까?
<div class="divGrid" style="margin: 0 auto; width: 70%;">
<asp:GridView ID="QuestionsGridView" CssClass="gridView" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" Width="100%" CellPadding="4" ForeColor="#333333">
<Columns>
<asp:BoundField DataField="QUESTION_NUMBER" ReadOnly="true" HeaderText="Question Number" SortExpression="QUESTION_NUMBER" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center" />
<asp:TemplateField HeaderText="Question" SortExpression="QUESTION" HeaderStyle-HorizontalAlign="Center">
<EditItemTemplate>
<asp:TextBox ID="EditQuestionBox" runat="server" Height="50px" Text='<%# Bind("QUESTION") %>' TextMode="MultiLine" Width="99%" CssClass="multilineTBox" Columns="1" Rows="2"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("QUESTION") %>'></asp:Label>
</ItemTemplate>
<ControlStyle Width="99%" />
</asp:TemplateField>
<asp:BoundField DataField="CAT_NAME" ReadOnly="true" HeaderText="Category" SortExpression="CAT_NAME" HeaderStyle-HorizontalAlign="Center" />
<asp:BoundField DataField="QUES_ORDER" ReadOnly="true" HeaderText="Order in Category" SortExpression="QUES_ORDER" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center" />
<asp:CommandField CausesValidation="False" HeaderText="Edit" ShowEditButton="True" ControlStyle-Width="4em" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center" />
</Columns>
<EditRowStyle BackColor="#2461BF" />
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#a0a0a0" Font-Bold="True" ForeColor="White" BorderStyle="Solid" BorderColor="Black" BorderWidth="1px" HorizontalAlign="Center" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#ffffff" BorderStyle="Solid" BorderColor="Black" BorderWidth="1px" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#F5F7FB" />
<SortedAscendingHeaderStyle BackColor="#6D95E1" />
<SortedDescendingCellStyle BackColor="#E9EBEF" />
<SortedDescendingHeaderStyle BackColor="#4870BE" />
</asp:GridView>
</div>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:Corp_TaxConnectionString %>"
SelectCommand="SELECT tq.id, tq.question, tq.ques_order, tc.cat_name, tq.question_number FROM t01_tax_questions AS tq INNER JOIN t01_tax_categories AS tc ON tq.category = tc.cat_order ORDER BY tq.question_number"
UpdateCommand="UPDATE t01_tax_questions SET question = @question WHERE question_number = @question_number">
<UpdateParameters>
<asp:Parameter Name="question_number" Type="Int32" />
<asp:Parameter Name="question" Type="String" />
<asp:Parameter Name="id" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>
그리고 테이블 :
여기 내 마크 업입니다 SQLServer Table
편집 :
보고 후, 내 EditItemTemplate에, 나는 텍스트 상자에 질문을 결합한다. 원래 질문을 업데이트하려고 시도하기 전에 텍스트 상자에 다시 데이터 바인딩되는 업데이트 단추를 클릭 한 후 가능합니까? 이 경우, 어떻게 그 문제를 해결할 수 있습니까?
잘 모르겠다면 (또는 인터페이스에있는 모든 SQL에 익숙하지 않은 경우) 그러나 이상한 점은 Gridview 필드가 sqldata 소스와 다른 경우입니다. 편집 : MSDN 링크 https://msdn.microsoft.com/en-us/library/z72eefad.aspx – Robin
예, 긴 이야기가 있습니다. 그러나 모두 일치하도록 사례를 변경하면 문제가 해결되지 않습니다. –
이 새로운 코드입니까? 이 모든 것을 직접 쓰셨습니까? 아니면 기존 애플리케이션을 지원합니까? – mason