0

我正在遍历 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
4

1 回答 1

1

根据我的经验(尽管是 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);
于 2012-12-04T17:24:40.230 回答