将 Excel 数据插入 Access 中,但单元格不包含任何数据



我正在遍历Excel工作表中的一些行/单元格,其中一些单元格是空白的。当我尝试进行插入时,如果单元格不包含任何数据,它会建议我该特定参数没有默认值。在 Access 中,我已将默认值设置为"=Null",但仍然收到错误。我是否必须为每个参数执行如下所示的 If 语句以防止错误?如果可能的话,我想清理我的代码。

If worksheet1.GetValue(i, 14) Is Nothing Then
                            cmd.Parameters.Add("@Param1", OleDbType.Char).Value = DBNull.Value
                        Else
                            cmd.Parameters.Add("@Param1", OleDbType.Char).Value = worksheet1.GetValue(i, 14)
                        End If

根据我的经验(尽管是 C#),是的,你这样做。 互操作(这是我假设您正在使用的,尽管我不认识GetValue()调用)通常在您尝试从空单元格获取数据而不首先检查时引发异常。我处理它的方法是将代码包装在一个方法中,然后每次都调用它(对不起,我的 VB 有点生疏):

Public Function GetCellContents(column As Integer, row As Integer) As String
    If worksheet1.GetValue(column, row) Is Nothing Then
        Return ""
    Else
        Return worksheet1.GetValue(column, row)
    End If
End Function

然后你可以做:

cmd.Parameters.Add("@Param1", OleDbType.Char).Value = GetCellContents(i, 14);

最新更新