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 に答える