Чтение значения метки поля шаблона, привязанного к полю базы данных SQLDatabase

#c# #asp.net #gridview

#c# #asp.net #просмотр сетки

Вопрос:

Мне нужно получить значение из поля шаблона метки, которое привязано к StudentID в таблице Student. Я хочу получить значение StudentID и вставить его в другую таблицу. Вот мой Gridview и SqlDataSource:

 <asp:GridView ID="GridView2" 
                        style="position:absolute; top: 232px; left: 311px;" 
                            AutoGenerateColumns="false" runat="server"
                        DataSourceID="SqlDataSource4">
                        <Columns>
                            <asp:TemplateField>
                            <ItemTemplate >
                            <asp:CheckBox runat="server" ID="AttendanceCheckBox" />
                            </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField>
                            <ItemTemplate>
                            <asp:Label ID="studentIDLabel" Text='<%# Eval("StudentID") %>' runat="server"></asp:Label>
                            </ItemTemplate>
                            </asp:TemplateField>                       
                            <asp:BoundField DataField="Name" HeaderText="Name" />
                        </Columns>
                     </asp:GridView>

<asp:SqlDataSource ID="SqlDataSource4" runat="server"
                        ConnectionString="<%$ ConnectionStrings:RegisterConnectionString %>" 
                        SelectCommand="SELECT [StudentID], [Name] FROM [Student] WHERE CourseID = @CourseID ">                         
                        <SelectParameters>
                            <asp:ControlParameter ControlID="CourseDropDownList" Name="CourseID" 
                                PropertyName="SelectedValue" Type="Int32" />
                        </SelectParameters>
                  </asp:SqlDataSource>
  

Вот мой код, с помощью которого вставляются значения в другую таблицу базы данных:

 protected void SaveRegisterButton_Click(object sender, EventArgs e)
    {
            SqlConnection connection;
            SqlCommand command;
            int numRowsAdded;
            int id;


    foreach (GridViewRow row in GridView2.Rows)
    {
        if (((CheckBox)row.FindControl("AttendanceCheckBox")).Checked)
        {
           try
            {
                bool attendance = true;

                // Connecting to the database using the connection string in the web.config file
                connection = new SqlConnection(WebConfigurationManager.ConnectionStrings["RegisterConnectionString"].ConnectionString);

                // Create an INSERT Sql statement
                // To prevent an Sql injection attack, we add parameters with names starting with an @ symbol
                command = new SqlCommand("INSERT INTO Attendance(Present, StudentID, LessonID) VALUES(@Attendance, @StudentID, @LessonID)", connection);

                command.Parameters.AddWithValue("@Attendance", attendance); 
  

Кто-нибудь может помочь мне с кодом для вставки значения внутри поля шаблона метки (StudentID) в поле StudentID в таблице посещаемости. Любая помощь приветствуется, заранее спасибо!

Ответ №1:

  foreach (GridViewRow row in GridView2.Rows)
{
    if (((CheckBox)row.FindControl("AttendanceCheckBox")).Checked)
    {
Int32 StudentID = Convert.ToInt32(((Label)row.FindControl("studentIDLabel")).Text)
....
....
}
  

Комментарии:

1. Что, если идентификатор студента имеет тип данных nvarchar? Какой тип данных используется в C # для типа данных nvarchar?