#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?