ホームページ  >  に質問  >  本文

列インデックス 0、名前 'ID' でのスキャン エラー: スキャンはサポートされていません。int64 型の値を *authService.Permission 型に保存しています。」

err = row.Scan(&resourceList, resourceTypeId) を呼び出そうとすると、次のエラーが表示されます。

列インデックス 0、名前 'ID' でのスキャン エラー: スキャンはサポートされていません。int64 型の driver.Value を *[]authService.Permission" 型に保存しています

リーリー
SQL は次の内容を返します

リーリー

queryEXEC ステートメントで SQL Server を使用しようとすると、同じクエリが正常に動作します。

ここで何が問題になっているのかわかりますか?前もって感謝します。

P粉475126941P粉475126941207日前347

全員に返信(1)返信します

  • P粉022140576

    P粉0221405762024-03-26 10:40:36

    ここでいくつかの問題があります。最初の QueryRowContext

    あなたの質問は、ステートメントが複数の結果を返すことを示しているため、これは使用する正しい関数ではありません (QueryContext の方が適切です)。

    2 番目の問題は、エラーに記載されているとおりです:

    結果セットの最初の列は整数 (この場合はおそらく値 15) で、これを []Permission にスキャンしようとしています。あなたが変われば var resourceList []Permission から var resourceList int バグは修正される予定です (ただし、2 番目のパラメーターも機能する必要があります)。

    この例ドキュメントを参照してください。そのコードを自分の状況に適用すると、次のような結果になります (テストされていません。正しい方向に導くためだけに): リーリー

    注: 構造体 Permission には 4 つの要素が含まれていますが、クエリは 2 つの列を返すため、他の 2 つの列にどのようにデータを入力するつもりなのか (または何をするのか) がよくわかりません。マッピングは) です。

    返事
    0
  • キャンセル返事