Vb.net DataGridView';s的行数为零
我对以下代码有问题:Vb.net DataGridView';s的行数为零,vb.net,datagridview,Vb.net,Datagridview,我对以下代码有问题: For x As Integer = 0 To family_grid.RowCount family_composition = family_grid.Rows(x).Cells(0).Value age = family_grid.Rows(x).Cells(1).Value status = family_grid.Rows(x).Cells(2).Value
For x As Integer = 0 To family_grid.RowCount
family_composition = family_grid.Rows(x).Cells(0).Value
age = family_grid.Rows(x).Cells(1).Value
status = family_grid.Rows(x).Cells(2).Value
relation = family_grid.Rows(x).Cells(3).Value
educational_attainment = family_grid.Rows(x).Cells(4).Value
occupation = family_grid.Rows(x).Cells(5).Value
income = family_grid.Rows(x).Cells(6).Value
dbConnect.Open()
Dim str1 As String = "INSERT INTO tbl_general_intake_family(id, family_composition, age, status, relation, educational_attainment, occupation, income)values(id, family_composition, age, status, relation, educational_attainment, occupation, income)"
Dim da As New OleDbDataAdapter()
Dim ds As New DataSet()
Dim com As New OleDb.OleDbCommand(str1, dbConnect)
com.Parameters.AddWithValue("id", var_document_id)
com.Parameters.AddWithValue("family_composition", family_composition)
com.Parameters.AddWithValue("age", age)
com.Parameters.AddWithValue("status", status)
com.Parameters.AddWithValue("relation", relation)
com.Parameters.AddWithValue("educational_attainment", educational_attainment)
com.Parameters.AddWithValue("occupation", occupation)
com.Parameters.AddWithValue("income", income)
com.ExecuteNonQuery()
com.Dispose()
dbConnect.Close()
Next
for循环永远不会执行,因为family\u grid.RowCount
返回的值为零
在表单加载事件
中,我使用以下代码填充数据网格视图
:
Dim mycon As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" + My.Application.Info.DirectoryPath + "\mswd-rms.mdb")
mycon.Open()
Dim mycomm As New OleDbCommand("SELECT * FROM tbl_general_intake_family WHERE id=" & main_general_intake.document_id, mycon)
Dim da As New OleDbDataAdapter()
da.SelectCommand = mycomm
Dim ds As New DataSet()
da.Fill(ds)
family_grid.Columns.Clear()
family_grid.ReadOnly = true
family_grid.DataSource = ds.Tables(0)
family_grid.Columns(0).HeaderText = "ID"
family_grid.Columns(1).HeaderText = "Name"
family_grid.Columns(2).HeaderText = "Age"
family_grid.Columns(3).HeaderText = "Status"
family_grid.Columns(4).HeaderText = "Relation"
family_grid.Columns(5).HeaderText = "Educational Attainment"
family_grid.Columns(6).HeaderText = "Occupation"
family_grid.Columns(7).HeaderText = "Income"
如果网格中只填充了一行,则RowCount不可能为零。RowCount应返回1 要解决此问题,请将datatable保存到专用表单级别变量并使用其Row.Count
private dtCurrentGrid As DataTable
..
dtCurrentGrid = ds.Tables(0)
..
For x As Integer = 0 To dtCurrentGrid.Rows.Count
请确认您的网格已填充数据,但行数返回零?SQL语句看起来有些奇怪-值不是带有
@
的前缀。我的datagrid有数据。它只显示一条记录。加上下面的空行。填充datagridview后检查行数时,值返回2。但是,当我在单击按钮时检查行数时,它返回0。有什么问题吗。。。对于该线程的未来访问者,我将在执行for循环语句之前调用我的.Close()