0

すべて 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"

ありがとう、ブラッド

4

1 に答える 1

0

varchar()その列を明示的にキャストすることができます...

于 2020-03-30T12:57:52.810 に答える