ADO.NETの質問・雑談スレ2at DB
ADO.NETの質問・雑談スレ2 - 暇つぶし2ch303:NAME IS NULL
10/01/11 00:38:34
LINQ使えば、もうADO.NETは不要という時代になってきたのかな・・・

304:NAME IS NULL
10/01/12 00:41:27
頑張ってLinq使ってるけど一長一短て感じだなー。
補完的に使うと便利だけど完全にADO.NETを置き換えられるか、つーと色々微妙。
取得結果を1カラムずつループ、とか出来ないし。

305:NAME IS NULL
10/01/12 03:06:20
Linq to SQLもEntity Frameworkも基本的にORMだから、
他のORMと同じような長所と短所を持っている。
完全な代替にはならない。

306:NAME IS NULL
10/01/25 17:41:17 l/MgFzI4
<<質問>>
当方の環境ではLike演算子の挙動が1)SqlSeverManagementStudio と 2)ADO.NET(VS2008C#)で異なっているのですが、
原因が解らずはまっております。なんでこんな事がおきるのでしょうか・・・

<<やりたいこと>> 
XXXA0001のようなデータを抽出したい

select max(xxxx) from xxxxx
where cd like 'XXX[AB][0-9][0-9][0-9][0-9]%'

<<現象>>
XXXA0001とか 1)ではヒットするのだが、 2)ではヒットしない

<<試行錯誤結果>>
2)では [0-9]の数が1つまでなら、なぜかヒットする

×where cd like 'XXX[AB][0-9][0-9][0-9][0-9]%'
×where cd like 'XXX[AB][0-9][0-9]01%'
×where cd like 'XXX[AB][0-9]0[0-9]1%'
○where cd like 'XXX[AB][0-9]001%'
○where cd like 'XXX[AB]0[0-9]01%'
○where cd like 'XXX[AB]00[0-9]1%'
○where cd like 'XXX[AB]000[0-9]%'


307:NAME IS NULL
10/01/25 22:28:11
>>306
System.Data.SqlClient.qlCommandでは2)は1)と同じ動作になる。
前提条件や再現するソースくらい出しなよ。

308:NAME IS NULL
10/01/25 23:24:47
どうせOLEDBとかODBCでやってんだろ。

309:NAME IS NULL
10/01/27 07:39:54
likeの後の文字列が途中で切れてると神の啓示があったぞ

310:306
10/02/01 12:22:20 1OwJFp6O
>>307-309
レス頂き有り難う御座います。
また、中途半端な情報しか出せずに申し訳ありません。

2)の実行環境ですが、プロジェクトにデータセット(XSDファイル)を追加し、
同デザイナ上でクエリ追加()、SQLは306に記述されている構文そのまま(Scalar)
になります。

尚、接続先はSqlServer2008Expressになります。
接続文字列は
Data Source=XXXXXX\SQLEXPRESS;Initial Catalog=XXXXXXXXX;Persist Security Info=True;User ID=xxxx,Password=xxxx
になります。

自分自身DBは1年に数回いじる程度のスキルしか持ち合わせていないため、
何か間違いを犯しているような気はしているのですが、それが特定出来ていないのが現状です。

>>309
パラメータ文字列長に上限値が存在するということでしょうか?


311:NAME IS NULL
10/02/01 23:48:53
本当に調査したいのならSQLServreProfilerでどんなSQLが発行されたか調べればいい。

312:NAME IS NULL
10/02/02 08:14:03
つか最低限のコード晒せよ
話はそれからだ

313:306
10/02/02 18:10:41 QBgQPh1C
>>311,312さまレス有り難う御座います。

306で御座います。原因がわかりました。
結論から言えば、309様の神のお告げのとおりで御座いました。

テーブルのフィールドの型がchar(16)で定義されているため、
デザイナでコード生成をすると対応するテーブルアダプタ\コマンド\パラメータの型も
char(16)として扱ってしまい、結果として、意図したパラメータが入力されなくなっておりました。

その為、like演算子を用いるパラメータクラスのプロパティ(ProvideType)を
Varchar型に変更することで解決することが確認できました。

>>311さま
実行されたSqlをトレースするソフトがあるなんて知りませんでしたw
同ツールを用いることで、解決にこぎつけました。

>>その他の皆様
私自身DBをよくわかっていないため、的確な情報が出せずに、申し訳ありません。
質問に反応して頂き有り難う御座いました。助かりました!!

314:NAME IS NULL
10/02/02 21:43:55
よかったな。久しぶりに気持ちいい質問者だったわ。

315:NAME IS NULL
10/02/20 16:19:47
ちょっと古い記事だけど、参考として紹介しておきます。

連載:VB研公開ゼミ議事録
第7回 ADO.NET開発初心者の疑問、解決します!
URLリンク(www.atmarkit.co.jp)

316:NAME IS NULL
10/03/13 16:18:45
read_commitedでのinsertでデッドロックすることがあるんですが、そういうものですか?
insertでなぜおきるのかわかりません


317:NAME IS NULL
10/03/13 16:32:42
だれかが、インサートしようとしたテーブルに対して、何らかのロックを獲得してたんだろう
つか、それほんとにデッドロックか?

318:NAME IS NULL
10/03/13 19:51:48
insertでのロックで考えられるのは索引に対するもの。
カーディナリティの低い索引で広範囲のロックがかかりやすい。


319:age
10/03/14 23:41:23 VnAk1aHD
データセットのxscファイルがなんのためにあるのかわからん。
教えてエロい人

320:NAME IS NULL
10/03/25 23:40:52
>>319
君を困らせるため

321:NAME IS NULL
10/03/28 16:44:06 WjFJHJzm
yorapaa@yahoo.co.jp,
このアドに
メールしてくれ




322:NAME IS NULL
10/04/30 07:08:31
なんのために?

323:NAME IS NULL
10/05/03 02:09:30 ZRam9Y6C
データベースの更新に失敗してロールバックが発生した場合、
データテーブルのRowStateとか更新中に取得した自動採番値を更新前の状態に戻す処理はどうしてますか?

AcceptChangesDuringUpdateをfalseにしてもRowStateが更新されちゃったり(MySqlConnecter.net)
ロールバック時のdatatableのロールバック処理に試行錯誤中です・・・


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch