すべて VarChar() フィールドであるテーブルがあります。
データセットに次の SQL を入力します (vb.net を使用)。
Select * From archive_naerns90_2006_q3.NAERNS90_Calls Where siteid = 'NAERNS90-02-627303'
次のエラーが表示されます。
Input string was not in a correct format.Couldn't store <02-627303> in agencyid Column. Expected type is Double.
PgAdmin からこのクエリを実行すると、正常に動作します。私はこの同じコードを何十もの他のテーブルで問題なく実行しています。
エラーで参照されている値 02-627303 は、そのレコードの Agencyid 列の値ですが、テーブルに Double フィールドがありません。完全な開示 - 2 つありましたが、Double から VarChar に変更しましたが、どちらも Agencyid column ではありませんでした。
もう 1 つのキッカーは、これがそのテーブルの一部のレコードでのみ発生することです。
壊れたテーブルがあると思います。テーブルをコピーしましたが、コピーにも同じ問題があります。また、PgAdmin では機能しますが、私のコードでは機能しないため、npgsql と関係がある可能性もあります。
編集:これは挿入エラーのように見えたため、問題領域の周りにコードを追加するように求められました。この関数では挿入をまったく行っていません。
SQL = "Select * From " & MlocRow("currentdb") & "." & SubTablesArr(Y) & " Where siteid = '" & DataRow("siteid") & "'"
Adapter.SelectCommand = New NpgsqlCommand(SQL, MLConnect)
Adapter.Fill(subDT)
私の接続文字列は次のとおりです。
"HOST=192.168.0.133;DATABASE=masterlists;USER ID=myuser;PASSWORD=mypassword"
ありがとう、ブラッド