Я пытаюсь получить данные двух таблиц из Microsoft SQL Server в элемент управления GridView.До сих пор я могу отображать все, что я хочу в элементе управления GridView.Тем не менее, я хотел бы сделать его редактируемым для пользователей, и у меня есть небольшая проблема с этим.
Это мой GridView управляйте исходным кодом, как показано ниже:
<asp:GridView ID="GridView1" runat="server" CssClass="auto-style36" AllowPaging="True" AutoGenerateColumns="False"
BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellPadding="3"
CellSpacing="2" DataSourceID="SqlDataSource1" DataKeyNames="SID">
<Columns>
<asp:CommandField ShowEditButton="True" />
<asp:BoundField DataField="SID" HeaderText="Student ID" ReadOnly="True" SortExpression="SID" />
<asp:BoundField DataField="S_FName" HeaderText="First Name" SortExpression="S_FName" />
<asp:BoundField DataField="S_LName" HeaderText="Last Name" SortExpression="S_LName" />
<asp:BoundField DataField="Atd_Date" HeaderText="Date" SortExpression="Atd_Date" />
<asp:BoundField DataField="Atd_InTime" HeaderText="In Time" SortExpression="Atd_InTime" />
<asp:BoundField DataField="Atd_OutTime" HeaderText="Out Time" SortExpression="Atd_OutTime" />
<asp:BoundField DataField="Atd_Comment" HeaderText="Comment" SortExpression="Atd_Comment" />
<asp:BoundField DataField="Status" HeaderText="Status" SortExpression="Status" />
</Columns>
<FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
<HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
<PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
<RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#FFF1D4" />
<SortedAscendingHeaderStyle BackColor="#B95C30" />
<SortedDescendingCellStyle BackColor="#F1E5CE" />
<SortedDescendingHeaderStyle BackColor="#93451F" />
</asp:GridView>
Как вы можете видеть выше, я использую SqlDataSource1 для извлечения данных в GridView:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:SAOS1ConnectionString %>"
SelectCommand="SELECT attendance.Atd_Date, attendance.Atd_InTime, attendance.Atd_OutTime, attendance.Atd_Comment,
attendance.Status, student.SID, student.S_FName, student.S_LName FROM student LEFT OUTER JOIN attendance ON student.SID = attendance.SID
AND attendance.Atd_Date = @Atd_Date LEFT OUTER JOIN class ON student.CID = class.CID WHERE (class.CID = @CID)"
UpdateCommand="updatetable1" UpdateCommandType="StoredProcedure">
<SelectParameters>
<asp:ControlParameter ControlID="datepicker" Name="Atd_Date" PropertyName="Text" />
<asp:ControlParameter ControlID="LabelClassID" Name="CID" PropertyName="Text" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="Atd_ID" Type="Int32" />
<asp:Parameter DbType="Date" Name="Atd_Date" />
<asp:Parameter DbType="Time" Name="Atd_InTime" />
<asp:Parameter DbType="Time" Name="Atd_OutTime" />
<asp:Parameter Name="Atd_Comment" Type="String" />
<asp:Parameter Name="Status" Type="String" />
<asp:Parameter Name="SID" Type="Int32" />
<asp:Parameter Name="S_FName" Type="String" />
<asp:Parameter Name="S_LName" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>
Для UPDATE оператор, я использую Stored Procured с именем updatetable1 :
CREATE PROCEDURE [dbo].[updatetable1]
(
@Atd_ID int,
@Atd_Date date,
@Atd_InTime time(7),
@Atd_OutTime time(7),
@Atd_Comment varchar(50),
@Status varchar(50),
@SID int,
@S_FName varchar(50),
@S_LName varchar(50)
)
AS
BEGIN
UPDATE attendance SET Atd_Date=@Atd_Date, Atd_InTime=@Atd_InTime, Atd_OutTime=@Atd_OutTime, Atd_Comment=@Atd_Comment, Status=@Status where Atd_ID=@Atd_ID
UPDATE student SET S_FName=@S_FName, S_LName=@S_LName WHERE SID=@SID
END
RETURN
Когда я нажимаю Редактировать ссылку в GridView, столбцы из таблицы student
, такие как SID, S_FName & S_LName успешно обновлены.
Но остальные столбцы таблицы attendance
не могут быть успешно обновлены .Изменения остаются прежними.Пожалуйста, ПОМОГИТЕ