0

DotNetNuke 4.x/VB.Net の古いコードを見ていましたが、次のコードから意味のあるものを作成できませんでした。SetNull メソッドが VB.Net の一部ではないことはわかっています。

Null.SetNull(ExamTrackerId) が呼び出されたときに、このコードは何をしようとしていますか?

        Private ExamTrackerId As Integer

        ' Determine ItemId
        If Not (Request.Params("ExamTrackerID") Is Nothing) Then
            ExamTrackerId = Int32.Parse(Request.Params("ExamTrackerID"))
        Else
            ExamTrackerId = Convert.ToInt32(Null.SetNull(ExamTrackerId))
        End If
4

2 に答える 2

2

クラスは .NET フレームワークのNull一部ではなく、DotNetNukeライブラリの一部です。私はこのライブラリに精通していませんが、(C#)ソースを見ると、Null.SetNullメソッドは入力パラメータ()がデータベース内でnullかどうかをチェックExamTrackerIdし、そうであれば入力型の値を返すようです。コードは、その戻り値をInt32型に変換するだけです。

これは単純なユーティリティ クラスであるため、このチェックを自分で実行できますが、.NETnullは型と同じではないDBNullため、間違った null チェックを誤って実行する可能性を低くするためだけにあるようです。

(ソース コードへのリンクが古くなっているのか、それともコードが不完全なのかはわかりませんが、型SetNullを 1 つだけ取るオーバーロードはないようですobject)。

于 2013-05-05T23:49:18.180 に答える
0

まず、これは VB.Net 言語のメソッドではなく、DotNetNuke.dll のカスタム メソッドです。

また、DNN 7.00.04 には、整数パラメータを取る SetNull というメソッドはありませんが、整数オブジェクトを取る SetNullInteger という同様のメソッドがあり、このメソッドに渡された Integer 型がDBNull.Value の値。.

DNN 7.00.04 に存在するメソッド SetNull は、古いバージョンの DNN の場合のように、1 つではなく 2 つのパラメーターを取ります。

したがって、DNN 7.00.04 の正しいコードは次のようになります。

       Private ExamTrackerId As Integer

    ' Determine ItemId
    If Not (Request.Params("ExamTrackerID") Is Nothing) Then
        ExamTrackerId = Int32.Parse(Request.Params("ExamTrackerID"))
    Else
        ExamTrackerId = Convert.ToInt32(DotNetNuke.Common.Utilities.Null.SetNullInteger(ExamTrackerId))
    End If
于 2013-05-07T14:57:06.570 に答える