1

SQL クエリを使用してデータセットから列を呼び出すコードを書いています。2 つのパラメーターを使用して、選択する行を識別します。1 つは ProductSerialNumber で、もう 1 つは日時スタンプです。以下の私のSQLクエリを参照してください

    Select TestStation FROM tblData
    WHERE ProductSerialNumber = ? AND Datetimestamp = ?

データセットのデータテーブルでは、productserialnumber はテキストとしてフォーマットされ、もう 1 つは日付としてフォーマットされます (ご想像のとおり)。

私の vb.net コードでは、別のソースから Datetimestamp を取得します (理由は聞かないでください。知っておく必要があるのは、tblData のエントリと正確に一致する、日付としてディメンション化された有効な datetimestamp を取得することだけです)。既製のクエリを使用してデータテーブルを生成します。クエリは「TestStationLookUp」という Fill クエリです。

私のvb.netコードは次のようになります

    Dim dt as new dataset.tbldataDataTable
    Dim dta As New DataSetTableAdapters.tbldataTableAdapter
    Dim ProductSerialNumber as string = "XXXXXX"
    Dim DateTimeStamp as date = SomeDateVariable
    dta.TestStationLookUp(dt, ProductSerialNumber, DateTimeStamp)

コードが教えてくれるのはここです:

Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints. 

       Line 7366:                dataTable.Clear
       Line 7367:            End If
Error: Line 7368:            Dim returnValue As Integer = Me.Adapter.Fill(dataTable)
       Line 7369:            Return returnValue
       Line 7370:        End Function

すべてが正しい寸法になっているため、このエラーが発生する理由がわかりません。この正確なコード設定は、私のコードの他の場所で機能します (日付を使用しないことを除いて) が、この特定の部分は機能しません。

また、ソリューションのデータセットに移動すると、このクエリで「プレビュー データ」を使用して、まったく同じパラメータ (テーブル内のレコードと一致する ProductSerialNumber と DateTimeStamp および vb コードで使用するもの) を入力できます。 )そして、私が望むテーブルを作成してくれます。

誰でも手伝ってもらえますか?

4

1 に答える 1

1

このエラーは、無効な一意の ID "ProductSerialNumber" にアクセスしようとしていることを意味します。存在しない可能性があります

制約を有効にできませんでした。1 つ以上の行に、null 以外、一意、または外部キーの制約に違反する値が含まれています。

データセットからの変数を渡す代わりに、データベースに存在することが確実な有効な数値を渡します

于 2013-08-02T16:13:51.607 に答える