【问题标题】:Insert Excel Data Into Access, But Cell Contains No Data?将 Excel 数据插入 Access,但单元格不包含数据?
【发布时间】:2012-12-04 14:27:45
【问题描述】:

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

【问题讨论】:

    标签: vb.net excel ms-access insert epplus


    【解决方案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);
    

    【讨论】:

    • 我正在使用 EPPlus。我会接受你的建议,因为这是个好主意。非常感谢。
    • @user1066133 啊哈,这就是我不认识这个方法的原因。我应该试试 EPPlus,它看起来相当不错。很高兴我能帮上忙。
    猜你喜欢
    • 2013-01-02
    • 1970-01-01
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 2016-02-09
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多