Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net Select查询填充datagridview但为空整数,为什么?_Vb.net_Excel_Datagridview - Fatal编程技术网

Vb.net Select查询填充datagridview但为空整数,为什么?

Vb.net Select查询填充datagridview但为空整数,为什么?,vb.net,excel,datagridview,Vb.net,Excel,Datagridview,My datagridview由excel工作表填充(使用select*from$Sheet1),大多数值插入datagridview(大多数是字符串),但仅整数值为空 空查询示例 这就是我填充datagridview的方式 Private Sub btnimportStdntList_Click(sender As Object, e As EventArgs) Handles btnimportStdntList.Click OpenFileDialog1.Title =

My datagridview由excel工作表填充(使用select*from$Sheet1),大多数值插入datagridview(大多数是字符串),但仅整数值为空

空查询示例

这就是我填充datagridview的方式

Private Sub btnimportStdntList_Click(sender As Object, e As EventArgs) Handles btnimportStdntList.Click
        OpenFileDialog1.Title = "Please Select the excel file with the list of question"
        OpenFileDialog1.FileName = "listofquestion.xls"
        OpenFileDialog1.Filter = "Excel Sheet(*.xls)|*.xls|All Files(*.*)|*.*"
        OpenFileDialog1.InitialDirectory = "C:temp"
        OpenFileDialog1.ShowDialog()
    End Sub
    Private Sub OpenFileDialog1_FileOk(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
        Try
            Dim strm As System.IO.Stream
            strm = OpenFileDialog1.OpenFile()
            txtQuestionList.Text = OpenFileDialog1.FileName.ToString()
            cn = New OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + txtQuestionList.Text + "';Extended Properties=Excel 8.0;")
            cn.Open()
            FillDataGridView("SELECT * FROM [Sheet1$]")
        Catch myerror As Exception
            MessageBox.Show(myerror.Message)
        Finally
            cn.Close()
        End Try
    End Sub
    Private Sub FillDataGridView(ByVal Query As String)
        da = New OleDbDataAdapter(Query, cn)
        dt = New DataTable
        da.Fill(dt)
        With DataGridView1
            .DataSource = dt
        End With
    End Sub 

如何修复它?

请检查数据表单元格整数的内容,例如dt.行[0][2]?它是否等于DBNull.Value?如果(e.RowIndex>=0),则尝试添加此
,如果IsDBNull(DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value)=True,则MsgBox(“True”)或MsgBox(“FALSE”)结束如果结束如果
空白单元格返回True请检查datatable以隔离datatable加载或Datagridview显示上的问题。上面提到的代码似乎还可以。因此,我认为问题来自datagridview事件。如果定义了一些事件处理程序,可以显示它们的代码吗?datagridview上没有事件处理程序,上面的代码占表单中代码总数的90%(不包括导入和连接字符串),请尝试修改连接字符串中的扩展属性,如下所示:“扩展属性=Excel 8.0;HDR=否;IMEX=1;”