- PR -

抽出条件でデータ型が一致しません。

1
投稿者投稿内容
夕凪
常連さん
会議室デビュー日: 2006/04/30
投稿数: 24
投稿日時: 2006-12-12 17:18
VB2005のADO.NET接続型アクセスにより、INSERT文を用いてAccess 2000形式のDBにデータを追加しようとしています。
VALUES句で、Yes/No型は「'True'」または「'False'」と記述し、テキスト型項目は値を「'」ではさみ、数値型項目はそのままセットしているのですが、ExecuteNonQueryメソッド実行時に

抽出条件でデータ型が一致しません。

というエラーが出てしまいます。
このエラーを回避するための特殊な記述が必要なのでしょうか。

どうぞよろしくお願いします。
どせい
大ベテラン
会議室デビュー日: 2006/10/25
投稿数: 145
投稿日時: 2006-12-12 17:34
引用:

夕凪さんの書き込み (2006-12-12 17:18) より:
VB2005のADO.NET接続型アクセスにより、INSERT文を用いてAccess 2000形式のDBにデータを追加しようとしています。
VALUES句で、Yes/No型は「'True'」または「'False'」と記述し、テキスト型項目は値を「'」ではさみ、数値型項目はそのままセットしているのですが、ExecuteNonQueryメソッド実行時に

抽出条件でデータ型が一致しません。

というエラーが出てしまいます。
このエラーを回避するための特殊な記述が必要なのでしょうか。

どうぞよろしくお願いします。



Yes/No型に'True'や'False'の文字列?

まあ、エラーメッセージはその段階まで行ってない事を示してる可能性が高いが。
とりあえずエラーメッセージをグーグルで検索して、その先読んでからINSERT文見直しな。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-12-12 17:58
引用:

夕凪さんの書き込み (2006-12-12 17:18) より:

VALUES句で、Yes/No型は「'True'」または「'False'」と記述し、テキスト型項目は値を「'」ではさみ、数値型項目はそのままセットしているのですが、


引用符で挟んでいるからこそ、例外が発生しています。
Boolean.TrueString のままで、引用符で囲む必要はないでしょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-12-12 18:32
引用:

夕凪さんの書き込み (2006-12-12 17:18) より:

VALUES句で、Yes/No型は「'True'」または「'False'」と記述し、テキスト型項目は値を「'」ではさみ、数値型項目はそのままセットしているのですが、ExecuteNonQueryメソ
どうぞよろしくお願いします。


Yes/No 型に入る値は文字列ではありません。
'True' とすると、True と言う文字列として扱われてしまうことになります。
True/False というのは、単純にその項目に対して、Yes なのか No なのか、(それ以外の値はない)を示す値だと思うとわかりやすいかと思います。
_________________
R・田中一郎 -  R.Tanaka.Ichiro’s Blog
夕凪
常連さん
会議室デビュー日: 2006/04/30
投稿数: 24
投稿日時: 2006-12-13 20:34
皆様、ご回答ありがとうございます。
引用符を消したら動きました。

AccessのYes/No型は引用符が不要なのですね。
SQL Serverのbit型は引用符が必要なのに。
ややこしい.....。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-12-27 09:33
引用:

夕凪さんの書き込み (2006-12-13 20:34) より:

AccessのYes/No型は引用符が不要なのですね。
SQL Serverのbit型は引用符が必要なのに。
ややこしい.....。


いいえ、SQL Server の bit 型の定数に引用符をつけてはいけません。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

スキルアップ/キャリアアップ(JOB@IT)