C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: VB2005からMDBのYES/NO型へアクセスについて


(過去ログ 24 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■10858 / inTopicNo.1)  VB2005からMDBのYES/NO型へアクセスについて
  
□投稿者/ なか (1回)-(2007/11/28(Wed) 14:15:47)

分類:[.NET 全般] 

いつも教えて頂きありがとうございます。

VB2005 Access2000(mdb) WindowsXP で開発しています。
アクセスデータに追加する場合に"抽出条件でデータ型が一致しません。"とエラーがでます。
テストソースは下記です。

−−−省略−−−

Row = Table.NewRow
Row("ID") = "9999"
Row("チェック") = True
Table.Rows.Add(Row)

−−−省略−−−

SqlStr = " INSERT INTO テスト ([ID], [チェック]) VALUES "
SqlStr &= " ('" & Row("ID") & "', '" & Row("チェック") & "')"

SqlCmd.CommandText = SqlStr
Cn.Open()
SqlCmd.ExecuteNonQuery()
Cn.Close()

アクセスでの設定は"チェック"をYES/NO型、書式をTrue/Falseに設定してあります。
数値や文字列は問題ないのですが、Boolean型のみエラーが出ます。
どなたかご教授お願いいたします。
引用返信 編集キー/
■10861 / inTopicNo.2)  Re[1]: VB2005からMDBのYES/NO型へアクセスについて
□投稿者/ 特攻隊長まるるう (97回)-(2007/11/28(Wed) 15:41:03)
2007/11/28(Wed) 15:56:45 編集(投稿者)

No10858 (なか さん) に返信
SQL文内でシングルクォーテーション(')で囲むということは、文字列を
表します。Boolean型に解釈されませんのでつけないでください。

>数値や文字列は問題ないのですが、Boolean型のみエラーが出ます。
数値も問題あるはずです。データベースのデータ型が数値で設定されて
いるか、今一度確認してください。

引用返信 編集キー/
■10865 / inTopicNo.3)  Re[1]: VB2005からMDBのYES/NO型へアクセスについて
□投稿者/ 魔界の仮面弁士 (537回)-(2007/11/28(Wed) 17:19:57)
No10858 (なか さん) に返信
> VB2005 Access2000(mdb) WindowsXP で開発しています。
> アクセスデータに追加する場合に"抽出条件でデータ型が一致しません。"とエラーがでます。

こういうときは、Parameter を使うようにしましょう。
SQLインジェクション対策にもなりますし。


> SqlStr = " INSERT INTO テスト ([ID], [チェック]) VALUES "
> SqlStr &= " ('" & Row("ID") & "', '" & Row("チェック") & "')"
生成された SQL が
 INSERT INTO [テスト] ([ID], [チェック]) VALUES ('9999', 'TRUE')
ではなく、
 INSERT INTO [テスト] ([ID], [チェック]) VALUES (9999, YES) … ID 列が数値の場合
 INSERT INTO [テスト] ([ID], [チェック]) VALUES ('9999', YES) … ID 列が文字列の場合
となるようにしてみてはいかがでしょう。
引用返信 編集キー/
■10873 / inTopicNo.4)  Re[1]: VB2005からMDBのYES/NO型へアクセスについて
□投稿者/ はつね (358回)-(2007/11/28(Wed) 19:48:40)
はつね さんの Web サイト
No10858 (なか さん) に返信
> アクセスデータに追加する場合に"抽出条件でデータ型が一致しません。"とエラーがでます。
> テストソースは下記です。

↓同じ事かと思います。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=10351

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -