ADO.NETの質問・雑談スレ2

1NAME IS NULL2009/02/08(日) 16:12:32ID:???
ADO.NETに関する質問・雑談・評価 etc
何でもどうぞ。

前スレ
ADO.NETの質問・雑談スレ
http://pc11.2ch.net/test/read.cgi/db/1104630889/

351NAME IS NULL2011/03/09(水) 08:20:57.40ID:???
多分基本的なことなんだろうと思うんですが
どう調べたらいいのかわからないので教えてください
ADO.NET+OLEDBでaccessに接続するときのSQL構文は
MDBファイルをAccessで開いて「クエリ」で入力するものと違いますよね
(例えばワイルドカードが*と%)
この構文は具体的には何の構文になるのでしょうか?
ADO.NET固有のものなのかOLEDB固有のものなのかもよくわからないし
詳細はどこに載っているのですか?

また、executeNonQuery等を実行する直前のsql文をDebug.printして
それをAccessのクエリで動かすと普通に動くのに
コード経由ではエラーになったりすることがあって困ってます
コード経由で実行されるのと同じ構文で
SQLの動作かチェック出来るようなツールが
Visual Studioとかに付属しているとデバッグしやすいのですが
そういうのはあったりしますか?

352NAME IS NULL2011/03/09(水) 19:58:25.17ID:???
>>351
> MDBファイルをAccessで開いて「クエリ」で入力するものと違いますよね

 何故そう思った

353NAME IS NULL2011/03/09(水) 20:02:36.36ID:???
>>351
> コード経由ではエラーになったりすることがあって困ってます

 エラーになったりしない。
 そもそもSQLが悪いのか?

354NAME IS NULL2011/03/09(水) 20:16:32.50ID:???
>>352
実際にMDBファイルをAccessで開いて
クエリ→SQLビューでコピペしてちゃんとINSERT文が動くからです。
ttp://msdn.microsoft.com/ja-jp/library/ms187442.aspx
ttp://msdn.microsoft.com/ja-jp/library/ms189086%28v=sql.90%29.aspx
この辺とかが該当するのかな、とも思ったのですが
後述するようにここは関係なくて、ANSI構文というのが該当するのかもしれません
そういう辺りの話は何を見れば載っているのかよくわからんです

>>353
今回エラーになっていた箇所は「Image」が
予約語になっていたのが原因で、[Image]とすることで回避出来ました
ただ、これは、Accessの予約語ではないです(使用しているバージョンは2002)
ttp://support.microsoft.com/kb/286335/ja
実際、MDBを開いてクエリ実行した場合は[]を付けずにちゃんと登録出来ます
プログラムからは、[]つきじゃないと動きません

もうちょっとググって辿りついたのがこれ(Imageが予約語に含まれている)。
ttp://support.microsoft.com/kb/248738/ja
そうだとするとOLEDBとかは関係なくて
JET&ANSI構文の話になるのかな?

355NAME IS NULL2011/03/09(水) 20:32:17.29ID:???
解決、ここにありましたわ
ttp://en.w3support.net/index.php?db=so&id=719115
ADOはデフォルトでSQL92準拠の構文
AccessはデフォルトでSQL89準拠の構文+一部準拠してない(VBのワイルドカード)
特にAccess2000はSQL89しか対応していない
また、mdbの設定でモードを変更出来る
ということでした

356NAME IS NULL2011/05/20(金) 10:26:08.66ID:8jU7fHP3
VS2005のデータアダプターの同時実行制御オプションONで
生成されるUpdateクエリのWHERE句は、
全列チェックではなく、SELECTで選択した列だけチェックされていますが、
これは、複数のユーザが同じクエリ(選択列)を実行した場合はOKだけど、
そうでない場合はNGじゃない。

357NAME IS NULL2011/06/20(月) 16:42:47.59ID:???
LEDいいよね


358NAME IS NULL2011/06/20(月) 18:11:59.09ID:???
EPI使ってるやついる?
ActiveRecordでinsert時のkey取得するのってどうやるの?
あと、QPEの接続パラメーター教えて


359NAME IS NULL2011/07/14(木) 19:09:35.92ID:???
質問があります。
以下のテーブルをDataAdapterで更新します。

変更前のテーブル
ID DATA
1 晴れ
2 曇り

変更後のテーブル
ID DATA
2 晴れ
1 曇り

IDは主キーに設定してあります。
この場合一意制約違反のエラーが起こります。
DataAdapterを使った更新方法で回避する方法はありますか?

360NAME IS NULL2011/07/14(木) 22:48:45.40ID:???
>>359
1 曇り
2 晴れ
 UPDATEすればいいだろ

3613592011/07/15(金) 00:25:19.89ID:???
>>360
回答ありがとうございます。
質問はテーブルを単純に書きましたがUPDATE以外にINSERTとDLEATEも同時にやりたいので、
DataAdapterを使用しています。
ID部分の入れ替え動作中に一意制約違反になってしまうので、どうにか回避出来る方法がないか探してます。

362NAME IS NULL2011/07/15(金) 07:54:05.68ID:???
>>361
仮に ID の最大値が 99 なら、
100足して、100引いたら、どうだべ。

363NAME IS NULL2011/07/15(金) 13:15:58.50ID:???
DataAdapter使ってんなら、ID以外の部分を入れ替えればいいだろ

364NAME IS NULL2011/07/15(金) 14:36:36.64ID:???
IDを書き換えるって発想がまずおかしい
IDを書き換えてダブったらエラーになるのは当然で
DataAdapterでどうこうするような話じゃないと思うが

UPDATEするのやめて、変更行はDELETEしてINSERTするようにすれば?

365NAME IS NULL2011/07/15(金) 18:19:31.42ID:???
>>364
DataRowに元テーブルの情報まで入っちまってるんで元情報を取っておくことが出来ない
やるとするとInsert用のRowを新規作成して元Rowからカラムを一つ一つコピーしていくアホ臭いことしないとならない
しょうがないので俺はカラム列挙してコピーするメソッド自作したよ

366NAME IS NULL2011/07/16(土) 22:15:46.61ID:???
俺ずっとADOのこと「アド」って読んでたんだけど・・・・



367NAME IS NULL2011/07/23(土) 12:48:32.26ID:ooK807YS
DataAdapterで更新っていうことにこだわってる理由がいまいちわからない。
どうして他の方法ではダメなのか、それを書かないとと思うのだが。
ExecuteNonQueryとか。

368NAME IS NULL2011/07/23(土) 16:43:22.93ID:???
エスパーすると
スキーマが度々変わってめんどい or カラム型チェックがなくなるのはヤダヤダ
あたりじゃないか

369NAME IS NULL2011/08/02(火) 23:29:38.05ID:???
!!!【ADO.netのソース流出】!!!

http://cdn1.publicphoto.xtube.com/photos/20110621/13/l76RjrQpn3yj.jpg

!!!【DANGER!!】【DANGER!!】【DANGER!!】!!!




370NAME IS NULL2011/08/10(水) 10:12:46.30ID:???
Visual Studio 2008 でSQL Server 2005 上のデータを表示・更新をするWindows Form
アプリケーションを作ろうとしています。

下のようなSQLで取得できるデータが対象。
SELECT D.DataNo, D.Hizuke, D.CustomerID, C.CustomerName
FROM TableData D JOIN Customer C on D.CustomerID=C.CustomerID

各カラムはフォーム上のTextboxに連結。
CustomerIDのTextboxを入力すると、CustomerNameのTextboxの表示が書き換えられる。

というのをやりたいんですが。

Windows Form アプリケーションのプロジェクトを新規作成。
データソースを新規作成。
使いそうなSQL Server上のテーブルを選んで追加。
データセットデザイナで、追加-TableAdapter。TableAdapter構成ウィザードを起動
ウィザードに従い、上のようなSQLを貼り付け、完了。
データセットデザイナ上にこんなのができた。
DataTable1
DataTable1TableAdapter
Fill, GetData()
Form1をデザイナで開き、DataTable1をドラッグ&ドロップ。
データが表示されるところまではできた。

あとどうしたらいいんですか。

371NAME IS NULL2011/08/10(水) 13:44:23.26ID:???
TextBoxのチェンジイベント補足してSelectしろ

372NAME IS NULL2011/08/10(水) 16:35:14.36ID:???
そんな蛸足配線みたいなことが出来るか。
次。

373NAME IS NULL2011/08/10(水) 17:04:42.62ID:???
>>372
回答者はお前だけじゃない。
答えられないからと”次”とかお前様主動でスレ進行させんな

374NAME IS NULL2011/08/10(水) 17:36:49.88ID:???
次も何も>>371で回答終わってんだろ

375NAME IS NULL2011/08/23(火) 09:49:57.31ID:???
TextBoxのチェンジイベントでSelectが嫌なら、
Formオープン時にSelectして適当な変数に格納、TextBoxのチェンジイベントでその値を取得
って流れになると思う。
結局はTextBoxのチェンジイベントを使うんじゃないの?

376NAME IS NULL2011/09/03(土) 16:52:43.26ID:???
バインドしたらいいだけ

377NAME IS NULL2011/09/19(月) 17:37:25.62ID:???
バインドしたらいいだけと言う対処方法を取る場合、
それの為だけに新しくテーブル作ったりするものなの?
バインドの為にローカルでmdbファイル準備するとか。

378NAME IS NULL2011/09/20(火) 03:41:39.47ID:???
お前バインドなんだと思ってんだ?

379NAME IS NULL2011/09/20(火) 11:31:35.13ID:???
わずか1ミリ秒でバインドを完了する

380NAME IS NULL2011/09/20(火) 21:56:55.32ID:???
Accessで言う連係だと思ってました。スマソ
非接続型になるから、メモリに読み込んでいて表示させても、
バインドしても処理内容は同じだったんだね。。。

381NAME IS NULL2011/11/26(土) 10:33:19.73ID:???
俺が使ってみた感想としては、DataTableは配列の塊として使いやすいよね。
後は要らんって感じなんだがな。
DataSetの有効活用方法ってあるのだろうか?型指定されたDataSetを使わない
場合には必要あるのかな?

382NAME IS NULL2011/11/26(土) 13:13:40.69ID:???
あげぽよ〜ん

383NAME IS NULL2011/11/27(日) 03:47:20.24ID:???
>>381
複数のDataTableをぶち込んで受け渡し
非接続だからいちいちdtoクラスとか作らなくていい

384NAME IS NULL2011/11/27(日) 20:01:24.52ID:???
>>383
なるほど。サンクス。
リレーション情報の活用ってしてますか?
俺はプログラム上で実現してるから、リレーションの
設定やらって基本しない。
開発時にエラーが出たりするのが逆に面倒だったりする。

385NAME IS NULL2011/12/01(木) 16:46:12.13ID:NE/R2Q2K
informixへの接続文字列わかる方いませんか?
odbcを使わずに接続できるらしいんですが調べても全然分からないんです

386NAME IS NULL2011/12/02(金) 01:41:29.39ID:???
>>385
ぐぐったらすぐ出てきたけど?

387NAME IS NULL2011/12/02(金) 01:41:55.70ID:???

388NAME IS NULL2011/12/02(金) 11:38:19.59ID:uq6jKSUZ
385です情報ありがとうございます。

●●.ConnectionString="Provider=Ifxoledbc;Data Source=データベース名@サーバー名;User ID=ユーザー名;Password=パスワード;"

でしてみたのですがエラー0x80040E21が出たので解決策を模索中です。
なにか根本的に間違ってるかもしれないです…

389NAME IS NULL2011/12/11(日) 12:23:56.82ID:55w2N/S/
検索エンジンGoogleで「インターネットテレビ 朝鮮総連 少頭劣一族 マイクロソフト社(又は経済産業省等気になる省やインターネットや原発、地震 波動砲)」を検索。
警察と自衛隊の武器は少頭劣一族が奪い、朝鮮に送ったらしい。知能障害以前の頭が悪い家族達。「工作員」の意味を知らない「工作員」家族。

390NAME IS NULL2012/02/14(火) 20:45:35.48ID:q17BHHig
すみません。質問いいですか?

C#でデータベースをdataset(データグリッドビューにバインドして作りました)にして扱っているのですが

訳あって同じ構造の別名テーブルに差し替える必要がでました。

クエリビルダでテーブルを差し替えると列の並びが狂うのですが、なにがおかしいのでしょうか?

また、列の並びをそのままに差し替えるいい方法はないでしょうか?

よろしくお願いします。

391NAME IS NULL2012/02/14(火) 20:51:57.22ID:???
すみません。急ぐもので。。C#スレに行かせて頂きます

392NAME IS NULL2013/10/16(水) 03:55:42.10ID:7O1WvKyT
いってらっしゃい

393NAME IS NULL2014/07/20(日) 11:54:22.83ID:usQ+cISA
★2ch勢いランキングサイトリスト★

◎ +ニュース板
・ 2NN
・ 2chTimes
◎ +ニュース板新着
・ 2NN新着
・ Headline BBY
・ unker Headline
◎ +ニュース板他
・ Desktop2ch
・ 記者別一覧
◎ 全板
・ 全板縦断勢いランキング
・ スレッドランキング総合ランキング
・ ログ速
◎ 全板実況込み
・ 2勢
・ READ2CH
・ i-ikioi

※ 要サイト名検索

394NAME IS NULL2015/03/01(日) 17:25:13.65ID:???
データベースデザイナ、便利だとの宣伝に釣られて使ってしまい、いま地獄を味わっている。

395NAME IS NULL2015/07/25(土) 17:59:32.99ID:???
ado.netってc#と関係有りますか?
c#習得出来たのでデータベースも勉強したいんですが、データベースってそれを使う目的が無いとプログラムも作れないし、どうやって勉強したらいいか迷っています。オススメの入門サイトなど有れば教えて下さい。

396NAME IS NULL2016/02/28(日) 00:48:40.97ID:???
保守

397NAME IS NULL2017/12/29(金) 12:10:12.50ID:dtNZwIie
誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。

グーグル検索⇒『宮本のゴウリエセレレ』

IPPOSAG5MP

398NAME IS NULL2018/02/14(水) 13:26:20.87ID:???
☆ 日本の、改憲をしましょう。現在、衆議員と参議院の両院で、
改憲議員が3分の2を超えております。『憲法改正国民投票法』、
でググってみてください。国会の発議はすでに可能です。
平和は勝ち取るものです。お願い致します。☆☆

399NAME IS NULL2018/05/30(水) 20:19:35.54ID:PJp3eSco
AddWithValueによる型指定が出来ない
クソ!と思ってたが、

cmd.Parameters.AddWithValue("@変数",値).SqlDbType = SqlDbType.VarChar

みたいに簡単にできる事を知ったときはシビれた。

400NAME IS NULL2018/07/21(土) 20:46:05.53ID:???
fillでdatasetにselectの結果が入ると思うんですが、そのテーブル名をsql側で指定することってできますか?

401NAME IS NULL2018/10/13(土) 19:52:13.84ID:???

新着レスの表示
レスを投稿する