如何在datagridview中填充列以供用户选择。 [英] How do I populate column in a datagridview for user to select from.
问题描述
我有这个代码可以将学生标记保存到数据库中
For Each Row As DataGridViewRow in dgAssessment.Rows
sqlSTR =更新评估SET CLASSCORE ='&row.Cells(2).Value&',_
&CONV_CS ='&row.Cells(3).Value&', _
&EXAM ='&row.Cells(4).Value&',_
&CONV_EXAM ='&row.Cells(5) ).Value&',_
&OVERALL ='&row.Cells(6).Value&',_
&GRADE = '&row.Cells(7).Value&',_
&REMARKS ='&row.Cells(8).Value&',_
&GRD ='&row.Cells(9).Value&'WHERE ACADEMIC_YEAR ='& txtAcademicYear.Text&'&_
AND STUDENTID ='&row.Cells(1).Value&'AND Term ='&txtTerm.Text&'&_
AND STAGE ='&cboStage.Text&'AND Subject ='&cboSubject.Text&'
ExecuteSQLQuery(sqlSTR)
下一页
并使用此代码填充网格
sqlSTRGRID =SELECT Name ,学生,CLASSCORE,CONV_CS,考试,CONV_EXAM,&_
总体,等级,备注,评估的学术成绩='&txtAcademicYear.Text&'AND STAGE ='& cboStage.Text&'&_
AND StudClass ='&cboClass.Text&'AND Term ='&txtTerm.Text&'AND Subject ='&cboSubject。文本&'ORDER BY Name ASC
ExecuteSQLQueryDataGrid(sqlSTRGRID)
如果sqlDTGRID.Rows.Count> 0然后
dgAssessment.DataSource = sqlDTGRID
dgAssessment.Columns(0).HeaderText =Name
dgAssessment.Columns(1)。 HeaderText =学生ID
dgAssessment.Columns(2).HeaderText =Class Score 100%
dgAssessment.Columns(3).HeaderText =Class Score 30 %
dgAssessment.Columns(4).HeaderText =EXAM 100%
dgAssessment.Columns(5).HeaderText =EXAM 70%
dgAssessment.Columns(6).HeaderText =TOTAL 30%+ 70%
dgAssessment.Columns(7).HeaderText =GRADE
dgAssessment .Columns(8).HeaderText =REMARKS
dgAssessment.Columns(9).HeaderText =GRD
结束如果
现在我想用数据填充备注列,以便用户可以从列表中选择每个主题的备注中输入。
另外每一个选中的标记应在保存并从数据库加载数据后显示在备注列中。因此,我希望备注列表现为正常的组合框。
I have this code that saves student marks to the database
For Each row As DataGridViewRow In dgAssessment.Rows
sqlSTR = "UPDATE Assessment SET CLASSCORE ='" & row.Cells(2).Value & "', " _
& "CONV_CS ='" & row.Cells(3).Value & "', " _
& "EXAM ='" & row.Cells(4).Value & "', " _
& "CONV_EXAM ='" & row.Cells(5).Value & "', " _
& "OVERALL ='" & row.Cells(6).Value & "', " _
& "GRADE ='" & row.Cells(7).Value & "', " _
& "REMARKS ='" & row.Cells(8).Value & "', " _
& "GRD ='" & row.Cells(9).Value & "' WHERE ACADEMIC_YEAR = '" & txtAcademicYear.Text & "'" & _
"AND STUDENTID = '" & row.Cells(1).Value & "' AND Term = '" & txtTerm.Text & "'" & _
"AND STAGE = '" & cboStage.Text & "' AND Subject = '" & cboSubject.Text & "'"
ExecuteSQLQuery(sqlSTR)
Next
And also populate the grid with this code
sqlSTRGRID = "SELECT Name, STUDENTID, CLASSCORE, CONV_CS, EXAM, CONV_EXAM," & _
"OVERALL, GRADE, REMARKS, GRD FROM vAssessment WHERE ACADEMIC_YEAR='" & txtAcademicYear.Text & "' AND STAGE='" & cboStage.Text & "'" & _
" AND StudClass='" & cboClass.Text & "' AND Term='" & txtTerm.Text & "' AND Subject='" & cboSubject.Text & "' ORDER BY Name ASC"
ExecuteSQLQueryDataGrid(sqlSTRGRID)
If sqlDTGRID.Rows.Count > 0 Then
dgAssessment.DataSource = sqlDTGRID
dgAssessment.Columns(0).HeaderText = "Name"
dgAssessment.Columns(1).HeaderText = "Student ID"
dgAssessment.Columns(2).HeaderText = "Class Score 100%"
dgAssessment.Columns(3).HeaderText = "Class Score 30%"
dgAssessment.Columns(4).HeaderText = "EXAM 100%"
dgAssessment.Columns(5).HeaderText = "EXAM 70%"
dgAssessment.Columns(6).HeaderText = "TOTAL 30%+70%"
dgAssessment.Columns(7).HeaderText = "GRADE"
dgAssessment.Columns(8).HeaderText = "REMARKS"
dgAssessment.Columns(9).HeaderText = "GRD"
End If
Now I want to populate remarks column with data so that the user can select from a list intead of typing in the remarks for each subject.
Also each remarks selected should display in the remarks column after saving and loading back the data from the database. Thus I want the remarks column to behave as a normal combobox.
推荐答案
因此,通过运行查询并将其绑定到<$ c $来从数据库获取备注c> DataTable 使用SqlDataAdapter
。
然后分配DataTable
到DataGridView
ComboBoxColumn的
DataSource
property。
参见示例 - C#中带有DataGridView的ComboBox [ ^ ]
So, get the Remarks from Database by running a query and bind that to aDataTable
usingSqlDataAdapter
.
Then assign theDataTable
to theDataGridView
ComboBoxColumn's
DataSource
property.
See example - ComboBox with DataGridView in C#[^]
这篇关于如何在datagridview中填充列以供用户选择。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!