Как установить значение флажка datagridview при данных из базы данных в vb.net

0

Я хочу установить значение checkbox из datagridview из базы данных, но я не знаю, как это сделать.

MySql Query:

SELECT students.Name, students.Class, students.Feedback, IF(students.Feedback = 0, 1, 0) 
NotFeedBack FROM students;

В результате:

====================================================
|Name          |Class        |Feedback |NotFeedBack|
====================================================
|Sandra        |1A           |1        |0          |
|Layla         |2B           |1        |0          |
|Nagisa        |3E           |0        |1          |
|Akabane       |3E           |1        |0          |
====================================================

В vb.net у меня есть datagridview1, здесь я объявляю и устанавливаю значение из базы данных:

Sub show_header()
    datagridview1.Columns.Add("Name", "Name")
    datagridview1.Columns.Add("Class", "Class")
    Dim chk As New DataGridViewCheckBoxColumn()
    datagridview1.Columns.Add(chk)
    chk.HeaderText = "Feedback"
    chk.Name = "Feedback"
    Dim ch As New DataGridViewCheckBoxColumn()
    datagridview1.Columns.Add(ch)
    ch.HeaderText = "NotFeedBack"
    ch.Name = "ch"
End Sub

Sub LoadData()
    dgvOTSum.Rows.Clear()
    dgvOTSum.Refresh()
    Dim tblot As New tblot
    Dim DtTable As New DataTable
    DtTable = tblot.DetailOT
    With DtTable
        For i = 0 To DtTable.Rows.Count - 1
            dgvOTSum.Rows.Add(.Rows(i).Item(0).ToString(), .Rows(i).Item(1).ToString(), _
                             .Rows(i).Item(2).ToString(), .Rows(i).Item(3).ToString())
        Next
    End With
End Sub

Я хочу получить результат следующим образом:

Изображение 174551

  • 2
    Есть ли конкретная причина, по которой вы не используете привязку данных? Или просто потому, что вы не слышали об этом или не знаете, как это сделать?
  • 0
    Привет @Mono, я использую datagridview.rows.add, потому что возможное datagridview может добавить нового студента и сохранить в базе данных. Есть ли у меня какие-либо идеи по этому поводу? Спасибо
Показать ещё 2 комментария
Теги:
datagridview

2 ответа

0
Лучший ответ
#Region "My declare variable (Class Feedback)"
Private _Name As String
Private _Class As String
Private _Feedback As Boolean
#End Region

#Region "Public Property"
Public Property Name As String
Get
    Return _Name
End Get
Set (value As String)
    _Name = value
End Set
End Property

Public Property Class As String
Get
    Return _Class
End Get
Set (value As String)
    _Class = value
End Set
End Property

Public Property Feedback As Boolean
Get
    Return _Feedback
End Get
Set (value As Boolean)
    _Feedback = value
End Set
End Property
#End Region

функция

Public Function DetailOT() As DataTable
    Dim sql = "SELECT students.Name, students.Class, students.Feedback, IF(students.Feedback = 0, 1, 0)
NotFeedBack FROM students;"
Try
    dtTable = Controldata.SelectQuery(sql)
Catch ex As Exception
    MsgBox(ex.ToString)
End Try
Return dtTable

Конечная функция

Форма1
Sub show_header()
datagridview1.Columns.Add("Name", "Name")
datagridview1.Columns.Add("Class", "Class")
Dim chk As New DataGridViewCheckBoxColumn()
datagridview1.Columns.Add(chk)
chk.HeaderText = "Feedback"
chk.Name = "Feedback"
Dim ch As New DataGridViewCheckBoxColumn()
datagridview1.Columns.Add(ch)
ch.HeaderText = "NotFeedBack"
ch.Name = "ch"
End Sub

Sub LoadData()
dgvOTSum.Rows.Clear()
dgvOTSum.Refresh()
Dim tblot As New tblot
Dim DtTable As New DataTable
DtTable = tblot.DetailOT
With DtTable
    For i = 0 To DtTable.Rows.Count - 1
        dgvOTSum.Rows.Add(.Rows(i).Item(0).ToString(), .Rows(i).Item(1).ToString(), _
                         .Rows(i).Item(2).ToString(), .Rows(i).Item(3).ToString())
    Next
End With
End Sub


Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    show_header()
    LoadData()
End Sub
0

Сначала вы должны попробовать привязку данных.

Во-вторых, вы можете попробовать:

ch.TrueValue = 1
ch.FalseValue = 0

Ещё вопросы

Сообщество Overcoder
Наверх
Меню