ADO.NETの質問・雑談スレ2 (421レス)
ADO.NETの質問・雑談スレ2 http://mevius.5ch.net/test/read.cgi/db/1234077152/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
1: NAME IS NULL [sage] 2009/02/08(日) 16:12:32 ID:??? ADO.NETに関する質問・雑談・評価 etc 何でもどうぞ。 前スレ ADO.NETの質問・雑談スレ http://pc11.2ch.net/test/read.cgi/db/1104630889/ http://mevius.5ch.net/test/read.cgi/db/1234077152/1
341: NAME IS NULL [sage] 2010/09/22(水) 15:50:08 ID:??? 自己解決致しました。 ACCESSでいろいろやっていたところSQL文の中にかなり関数を入れることが可能でした。 以下のSQL文で年齢を含んだデータテーブルを作成することができました。 有難う御座いました。 SELECT ID, 生年月日, Format((Format(Now(),'yyyymmdd') - Format(生年月日,'yyyymmdd')) / 10000, '#0') AS 年齢 FROM 社員テーブル http://mevius.5ch.net/test/read.cgi/db/1234077152/341
342: NAME IS NULL [sage] 2010/10/20(水) 20:08:24 ID:??? ちょっと教えてください! 今、VB2010からADO接続でAccess2007のデータ管理するシステム作ってるんだけど、 Accessで添付ファイル型フィールドにJPEGかBMPのファイルを記録して、それをADOで抽出したいのです。 その時の抽出方法としてDatasetを使用するんですが、このDatasetからどうやって添付ファイル型のデータを抜き取ればいいんでしょう? DataSet.Tables("テーブル名").Rows(0)("フィールド名") この構文のあとに何かつけるとか?? http://mevius.5ch.net/test/read.cgi/db/1234077152/342
343: NAME IS NULL [age] 2010/11/22(月) 18:34:13 ID:??? >>342 かなり亀レスだけど、このスレは人が少ないから、 プログラム板のVB関連スレでも同じ質問をしてみると いいと思う。 その結果をここで紹介してくれるとなおよろし。 http://mevius.5ch.net/test/read.cgi/db/1234077152/343
344: NAME IS NULL [sage] 2010/11/23(火) 17:10:07 ID:??? 俺の経験談だが、 ADO.NETに関する質問は、プログラム板のVB質問スレでも 丁寧な回答がつく事が多い。 http://mevius.5ch.net/test/read.cgi/db/1234077152/344
345: NAME IS NULL [sage] 2010/11/23(火) 19:16:17 ID:??? 今のVB.NET質問スレにはDB詳しい人おらんようだで http://mevius.5ch.net/test/read.cgi/db/1234077152/345
346: NAME IS NULL [sage] 2010/11/23(火) 19:26:05 ID:??? 少しはググれよ。 http://support.microsoft.com/kb/309158/ja http://mevius.5ch.net/test/read.cgi/db/1234077152/346
347: NAME IS NULL [age] 2010/11/27(土) 12:27:43 ID:??? ム板で見つけた関連スレを貼っておきます。 データベースプログラミング全般スレ http://hibari.2ch.net/test/read.cgi/tech/1097295557/l50 このスレッドも、DB関連話題という枠組みよりも、プログラムとして どうなのかという話題にする意味合いで、板を移ったほうがいいかもね。 http://mevius.5ch.net/test/read.cgi/db/1234077152/347
348: NAME IS NULL [sage] 2010/12/02(木) 23:45:51 ID:??? テーブルアダプタの連想配列みたいなことを実現する方法はありますか? イメージとしては Using ta as New myDataAdapters(DataSetName) Dim dt as DataTable ta.Tables(TableName).fill dt.Rows(0)(TargetColumnName)="hoge" ta.Update(dt) End Using こんな感じで http://mevius.5ch.net/test/read.cgi/db/1234077152/348
349: NAME IS NULL [sage] 2010/12/02(木) 23:48:04 ID:??? ta.Tables(TableName).fill じゃなくて ta.Tables(dt,TableName).fill もしくは dt=ta.Tables(TableName).GetData() こうか http://mevius.5ch.net/test/read.cgi/db/1234077152/349
350: NAME IS NULL [age] 2011/02/04(金) 13:23:01 ID:??? 保守しときます http://mevius.5ch.net/test/read.cgi/db/1234077152/350
351: NAME IS NULL [sage] 2011/03/09(水) 08:20:57.40 ID:??? 多分基本的なことなんだろうと思うんですが どう調べたらいいのかわからないので教えてください ADO.NET+OLEDBでaccessに接続するときのSQL構文は MDBファイルをAccessで開いて「クエリ」で入力するものと違いますよね (例えばワイルドカードが*と%) この構文は具体的には何の構文になるのでしょうか? ADO.NET固有のものなのかOLEDB固有のものなのかもよくわからないし 詳細はどこに載っているのですか? また、executeNonQuery等を実行する直前のsql文をDebug.printして それをAccessのクエリで動かすと普通に動くのに コード経由ではエラーになったりすることがあって困ってます コード経由で実行されるのと同じ構文で SQLの動作かチェック出来るようなツールが Visual Studioとかに付属しているとデバッグしやすいのですが そういうのはあったりしますか? http://mevius.5ch.net/test/read.cgi/db/1234077152/351
352: NAME IS NULL [sage] 2011/03/09(水) 19:58:25.17 ID:??? >>351 > MDBファイルをAccessで開いて「クエリ」で入力するものと違いますよね 何故そう思った http://mevius.5ch.net/test/read.cgi/db/1234077152/352
353: NAME IS NULL [sage] 2011/03/09(水) 20:02:36.36 ID:??? >>351 > コード経由ではエラーになったりすることがあって困ってます エラーになったりしない。 そもそもSQLが悪いのか? http://mevius.5ch.net/test/read.cgi/db/1234077152/353
354: NAME IS NULL [sage] 2011/03/09(水) 20:16:32.50 ID:??? >>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構文の話になるのかな? http://mevius.5ch.net/test/read.cgi/db/1234077152/354
355: NAME IS NULL [sage] 2011/03/09(水) 20:32:17.29 ID:??? 解決、ここにありましたわ ttp://en.w3support.net/index.php?db=so&id=719115 ADOはデフォルトでSQL92準拠の構文 AccessはデフォルトでSQL89準拠の構文+一部準拠してない(VBのワイルドカード) 特にAccess2000はSQL89しか対応していない また、mdbの設定でモードを変更出来る ということでした http://mevius.5ch.net/test/read.cgi/db/1234077152/355
356: NAME IS NULL [] 2011/05/20(金) 10:26:08.66 ID:8jU7fHP3 VS2005のデータアダプターの同時実行制御オプションONで 生成されるUpdateクエリのWHERE句は、 全列チェックではなく、SELECTで選択した列だけチェックされていますが、 これは、複数のユーザが同じクエリ(選択列)を実行した場合はOKだけど、 そうでない場合はNGじゃない。 http://mevius.5ch.net/test/read.cgi/db/1234077152/356
357: NAME IS NULL [sage] 2011/06/20(月) 16:42:47.59 ID:??? LEDいいよね http://mevius.5ch.net/test/read.cgi/db/1234077152/357
358: NAME IS NULL [sage] 2011/06/20(月) 18:11:59.09 ID:??? EPI使ってるやついる? ActiveRecordでinsert時のkey取得するのってどうやるの? あと、QPEの接続パラメーター教えて http://mevius.5ch.net/test/read.cgi/db/1234077152/358
359: NAME IS NULL [sage] 2011/07/14(木) 19:09:35.92 ID:??? 質問があります。 以下のテーブルをDataAdapterで更新します。 変更前のテーブル ID DATA 1 晴れ 2 曇り 変更後のテーブル ID DATA 2 晴れ 1 曇り IDは主キーに設定してあります。 この場合一意制約違反のエラーが起こります。 DataAdapterを使った更新方法で回避する方法はありますか? http://mevius.5ch.net/test/read.cgi/db/1234077152/359
360: NAME IS NULL [sage] 2011/07/14(木) 22:48:45.40 ID:??? >>359 1 曇り 2 晴れ UPDATEすればいいだろ http://mevius.5ch.net/test/read.cgi/db/1234077152/360
361: 359 [sage] 2011/07/15(金) 00:25:19.89 ID:??? >>360 回答ありがとうございます。 質問はテーブルを単純に書きましたがUPDATE以外にINSERTとDLEATEも同時にやりたいので、 DataAdapterを使用しています。 ID部分の入れ替え動作中に一意制約違反になってしまうので、どうにか回避出来る方法がないか探してます。 http://mevius.5ch.net/test/read.cgi/db/1234077152/361
362: NAME IS NULL [sage] 2011/07/15(金) 07:54:05.68 ID:??? >>361 仮に ID の最大値が 99 なら、 100足して、100引いたら、どうだべ。 http://mevius.5ch.net/test/read.cgi/db/1234077152/362
363: NAME IS NULL [sage] 2011/07/15(金) 13:15:58.50 ID:??? DataAdapter使ってんなら、ID以外の部分を入れ替えればいいだろ http://mevius.5ch.net/test/read.cgi/db/1234077152/363
364: NAME IS NULL [sage] 2011/07/15(金) 14:36:36.64 ID:??? IDを書き換えるって発想がまずおかしい IDを書き換えてダブったらエラーになるのは当然で DataAdapterでどうこうするような話じゃないと思うが UPDATEするのやめて、変更行はDELETEしてINSERTするようにすれば? http://mevius.5ch.net/test/read.cgi/db/1234077152/364
365: NAME IS NULL [sage] 2011/07/15(金) 18:19:31.42 ID:??? >>364 DataRowに元テーブルの情報まで入っちまってるんで元情報を取っておくことが出来ない やるとするとInsert用のRowを新規作成して元Rowからカラムを一つ一つコピーしていくアホ臭いことしないとならない しょうがないので俺はカラム列挙してコピーするメソッド自作したよ http://mevius.5ch.net/test/read.cgi/db/1234077152/365
366: NAME IS NULL [sage] 2011/07/16(土) 22:15:46.61 ID:??? 俺ずっとADOのこと「アド」って読んでたんだけど・・・・ http://mevius.5ch.net/test/read.cgi/db/1234077152/366
367: NAME IS NULL [] 2011/07/23(土) 12:48:32.26 ID:ooK807YS DataAdapterで更新っていうことにこだわってる理由がいまいちわからない。 どうして他の方法ではダメなのか、それを書かないとと思うのだが。 ExecuteNonQueryとか。 http://mevius.5ch.net/test/read.cgi/db/1234077152/367
368: NAME IS NULL [sage] 2011/07/23(土) 16:43:22.93 ID:??? エスパーすると スキーマが度々変わってめんどい or カラム型チェックがなくなるのはヤダヤダ あたりじゃないか http://mevius.5ch.net/test/read.cgi/db/1234077152/368
369: NAME IS NULL [sage] 2011/08/02(火) 23:29:38.05 ID:??? !!!【ADO.netのソース流出】!!! http://cdn1.publicphoto.xtube.com/photos/20110621/13/l76RjrQpn3yj.jpg !!!【DANGER!!】【DANGER!!】【DANGER!!】!!! http://mevius.5ch.net/test/read.cgi/db/1234077152/369
370: NAME IS NULL [sage] 2011/08/10(水) 10:12:46.30 ID:??? 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をドラッグ&ドロップ。 データが表示されるところまではできた。 あとどうしたらいいんですか。 http://mevius.5ch.net/test/read.cgi/db/1234077152/370
371: NAME IS NULL [sage] 2011/08/10(水) 13:44:23.26 ID:??? TextBoxのチェンジイベント補足してSelectしろ http://mevius.5ch.net/test/read.cgi/db/1234077152/371
372: NAME IS NULL [sage] 2011/08/10(水) 16:35:14.36 ID:??? そんな蛸足配線みたいなことが出来るか。 次。 http://mevius.5ch.net/test/read.cgi/db/1234077152/372
373: NAME IS NULL [sage] 2011/08/10(水) 17:04:42.62 ID:??? >>372 回答者はお前だけじゃない。 答えられないからと”次”とかお前様主動でスレ進行させんな http://mevius.5ch.net/test/read.cgi/db/1234077152/373
374: NAME IS NULL [sage] 2011/08/10(水) 17:36:49.88 ID:??? 次も何も>>371で回答終わってんだろ http://mevius.5ch.net/test/read.cgi/db/1234077152/374
375: NAME IS NULL [age] 2011/08/23(火) 09:49:57.31 ID:??? TextBoxのチェンジイベントでSelectが嫌なら、 Formオープン時にSelectして適当な変数に格納、TextBoxのチェンジイベントでその値を取得 って流れになると思う。 結局はTextBoxのチェンジイベントを使うんじゃないの? http://mevius.5ch.net/test/read.cgi/db/1234077152/375
376: NAME IS NULL [sage] 2011/09/03(土) 16:52:43.26 ID:??? バインドしたらいいだけ http://mevius.5ch.net/test/read.cgi/db/1234077152/376
377: NAME IS NULL [age] 2011/09/19(月) 17:37:25.62 ID:??? バインドしたらいいだけと言う対処方法を取る場合、 それの為だけに新しくテーブル作ったりするものなの? バインドの為にローカルでmdbファイル準備するとか。 http://mevius.5ch.net/test/read.cgi/db/1234077152/377
378: NAME IS NULL [sage] 2011/09/20(火) 03:41:39.47 ID:??? お前バインドなんだと思ってんだ? http://mevius.5ch.net/test/read.cgi/db/1234077152/378
379: NAME IS NULL [sage] 2011/09/20(火) 11:31:35.13 ID:??? わずか1ミリ秒でバインドを完了する http://mevius.5ch.net/test/read.cgi/db/1234077152/379
380: NAME IS NULL [sage] 2011/09/20(火) 21:56:55.32 ID:??? Accessで言う連係だと思ってました。スマソ 非接続型になるから、メモリに読み込んでいて表示させても、 バインドしても処理内容は同じだったんだね。。。 http://mevius.5ch.net/test/read.cgi/db/1234077152/380
381: NAME IS NULL [age] 2011/11/26(土) 10:33:19.73 ID:??? 俺が使ってみた感想としては、DataTableは配列の塊として使いやすいよね。 後は要らんって感じなんだがな。 DataSetの有効活用方法ってあるのだろうか?型指定されたDataSetを使わない 場合には必要あるのかな? http://mevius.5ch.net/test/read.cgi/db/1234077152/381
382: NAME IS NULL [age] 2011/11/26(土) 13:13:40.69 ID:??? あげぽよ〜ん http://mevius.5ch.net/test/read.cgi/db/1234077152/382
383: NAME IS NULL [sage] 2011/11/27(日) 03:47:20.24 ID:??? >>381 複数のDataTableをぶち込んで受け渡し 非接続だからいちいちdtoクラスとか作らなくていい http://mevius.5ch.net/test/read.cgi/db/1234077152/383
384: NAME IS NULL [sage] 2011/11/27(日) 20:01:24.52 ID:??? >>383 なるほど。サンクス。 リレーション情報の活用ってしてますか? 俺はプログラム上で実現してるから、リレーションの 設定やらって基本しない。 開発時にエラーが出たりするのが逆に面倒だったりする。 http://mevius.5ch.net/test/read.cgi/db/1234077152/384
385: NAME IS NULL [] 2011/12/01(木) 16:46:12.13 ID:NE/R2Q2K informixへの接続文字列わかる方いませんか? odbcを使わずに接続できるらしいんですが調べても全然分からないんです http://mevius.5ch.net/test/read.cgi/db/1234077152/385
386: NAME IS NULL [sage] 2011/12/02(金) 01:41:29.39 ID:??? >>385 ぐぐったらすぐ出てきたけど? http://mevius.5ch.net/test/read.cgi/db/1234077152/386
387: NAME IS NULL [sage] 2011/12/02(金) 01:41:55.70 ID:??? >>385 これな http://www.connectionstrings.com/informix http://mevius.5ch.net/test/read.cgi/db/1234077152/387
388: NAME IS NULL [] 2011/12/02(金) 11:38:19.59 ID:uq6jKSUZ 385です情報ありがとうございます。 ●●.ConnectionString="Provider=Ifxoledbc;Data Source=データベース名@サーバー名;User ID=ユーザー名;Password=パスワード;" でしてみたのですがエラー0x80040E21が出たので解決策を模索中です。 なにか根本的に間違ってるかもしれないです… http://mevius.5ch.net/test/read.cgi/db/1234077152/388
389: NAME IS NULL [] 2011/12/11(日) 12:23:56.82 ID:55w2N/S/ 検索エンジンGoogleで「インターネットテレビ 朝鮮総連 少頭劣一族 マイクロソフト社(又は経済産業省等気になる省やインターネットや原発、地震 波動砲)」を検索。 警察と自衛隊の武器は少頭劣一族が奪い、朝鮮に送ったらしい。知能障害以前の頭が悪い家族達。「工作員」の意味を知らない「工作員」家族。 http://mevius.5ch.net/test/read.cgi/db/1234077152/389
390: NAME IS NULL [] 2012/02/14(火) 20:45:35.48 ID:q17BHHig すみません。質問いいですか? C#でデータベースをdataset(データグリッドビューにバインドして作りました)にして扱っているのですが 訳あって同じ構造の別名テーブルに差し替える必要がでました。 クエリビルダでテーブルを差し替えると列の並びが狂うのですが、なにがおかしいのでしょうか? また、列の並びをそのままに差し替えるいい方法はないでしょうか? よろしくお願いします。 http://mevius.5ch.net/test/read.cgi/db/1234077152/390
391: NAME IS NULL [sage] 2012/02/14(火) 20:51:57.22 ID:??? すみません。急ぐもので。。C#スレに行かせて頂きます http://mevius.5ch.net/test/read.cgi/db/1234077152/391
392: NAME IS NULL [] 2013/10/16(水) 03:55:42.10 ID:7O1WvKyT いってらっしゃい http://mevius.5ch.net/test/read.cgi/db/1234077152/392
393: NAME IS NULL [] 2014/07/20(日) 11:54:22.83 ID:usQ+cISA ★2ch勢いランキングサイトリスト★ ◎ +ニュース板 ・ 2NN ・ 2chTimes ◎ +ニュース板新着 ・ 2NN新着 ・ Headline BBY ・ unker Headline ◎ +ニュース板他 ・ Desktop2ch ・ 記者別一覧 ◎ 全板 ・ 全板縦断勢いランキング ・ スレッドランキング総合ランキング ・ ログ速 ◎ 全板実況込み ・ 2勢 ・ READ2CH ・ i-ikioi ※ 要サイト名検索 http://mevius.5ch.net/test/read.cgi/db/1234077152/393
394: NAME IS NULL [sage] 2015/03/01(日) 17:25:13.65 ID:??? データベースデザイナ、便利だとの宣伝に釣られて使ってしまい、いま地獄を味わっている。 http://mevius.5ch.net/test/read.cgi/db/1234077152/394
395: NAME IS NULL [sage] 2015/07/25(土) 17:59:32.99 ID:??? ado.netってc#と関係有りますか? c#習得出来たのでデータベースも勉強したいんですが、データベースってそれを使う目的が無いとプログラムも作れないし、どうやって勉強したらいいか迷っています。オススメの入門サイトなど有れば教えて下さい。 http://mevius.5ch.net/test/read.cgi/db/1234077152/395
396: NAME IS NULL [sage] 2016/02/28(日) 00:48:40.97 ID:??? 保守 http://mevius.5ch.net/test/read.cgi/db/1234077152/396
397: NAME IS NULL [] 2017/12/29(金) 12:10:12.50 ID:dtNZwIie 誰でも簡単にパソコン1台で稼げる方法など 参考までに、 ⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。 グーグル検索⇒『宮本のゴウリエセレレ』 IPPOSAG5MP http://mevius.5ch.net/test/read.cgi/db/1234077152/397
398: NAME IS NULL [sage] 2018/02/14(水) 13:26:20.87 ID:??? ☆ 日本の、改憲をしましょう。現在、衆議員と参議院の両院で、 改憲議員が3分の2を超えております。『憲法改正国民投票法』、 でググってみてください。国会の発議はすでに可能です。 平和は勝ち取るものです。お願い致します。☆☆ http://mevius.5ch.net/test/read.cgi/db/1234077152/398
399: NAME IS NULL [] 2018/05/30(水) 20:19:35.54 ID:PJp3eSco AddWithValueによる型指定が出来ない クソ!と思ってたが、 cmd.Parameters.AddWithValue("@変数",値).SqlDbType = SqlDbType.VarChar みたいに簡単にできる事を知ったときはシビれた。 http://mevius.5ch.net/test/read.cgi/db/1234077152/399
400: NAME IS NULL [sage] 2018/07/21(土) 20:46:05.53 ID:??? fillでdatasetにselectの結果が入ると思うんですが、そのテーブル名をsql側で指定することってできますか? http://mevius.5ch.net/test/read.cgi/db/1234077152/400
401: NAME IS NULL [sage] 2018/10/13(土) 19:52:13.84 ID:??? https://imgur.com/FAF05na.jpg http://mevius.5ch.net/test/read.cgi/db/1234077152/401
402: NAME IS NULL [] 2020/01/26(日) 02:26:51.45 ID:BP0mZu6W バイナリ型のデータの取得で質問があります データベースでアクセスでフィールド型OLE オブジェクト型があり そこにバイナリデータがあります。 具体的にはEXCELのファイルのバイナリが登録されています(これは直接登録) そこからADO.NETでそのバイナリを読み出し クライアントにダウンロードして開けたいと思っています。 プログラム ・・・・・・前半省略 while (reader.Read())//アクセスからデータをバイナリデータを読み込む { ExcelBinary = (Byte[])reader.GetValue(0);//EXCELのバイナリデータ(あらかじめ登録されている) Response.AddHeader("Content-Disposition", "attachment;filename=" + "data.xlsx"); //ヘッダー Response.ContentType = "application/msexcel";// MIMEコンテンツタイプを指定 Response.BinaryWrite(PhotoData);// HTTP出力ストリームにバイナリ文字の文字列を書き込む Response.Flush(); Response.End(); これでいけるとおもうのですが確かにダウンロードしてEXCELがたちあがるのですが ファイルが壊れているか拡張子が違うとメッセージが出て開けません 疑問点は何か足りない部分があるのでしょうか? ちなみにアクセスでなくファイルのバスにEXCELデータを直接置いた場合はファイルがダウンロードされて 開けます。 さらにFsstreamで書き出して直接開けても同じこのがおこります。 EXCELやPDFはアクセスに登録してダウンロードして開けることはできないのでしょうか? ご教授していただければ幸いです http://mevius.5ch.net/test/read.cgi/db/1234077152/402
403: NAME IS NULL [] 2020/01/26(日) 02:26:56.38 ID:BP0mZu6W バイナリ型のデータの取得で質問があります データベースでアクセスでフィールド型OLE オブジェクト型があり そこにバイナリデータがあります。 具体的にはEXCELのファイルのバイナリが登録されています(これは直接登録) そこからADO.NETでそのバイナリを読み出し クライアントにダウンロードして開けたいと思っています。 プログラム ・・・・・・前半省略 while (reader.Read())//アクセスからデータをバイナリデータを読み込む { ExcelBinary = (Byte[])reader.GetValue(0);//EXCELのバイナリデータ(あらかじめ登録されている) Response.AddHeader("Content-Disposition", "attachment;filename=" + "data.xlsx"); //ヘッダー Response.ContentType = "application/msexcel";// MIMEコンテンツタイプを指定 Response.BinaryWrite(PhotoData);// HTTP出力ストリームにバイナリ文字の文字列を書き込む Response.Flush(); Response.End(); これでいけるとおもうのですが確かにダウンロードしてEXCELがたちあがるのですが ファイルが壊れているか拡張子が違うとメッセージが出て開けません 疑問点は何か足りない部分があるのでしょうか? ちなみにアクセスでなくファイルのバスにEXCELデータを直接置いた場合はファイルがダウンロードされて 開けます。 さらにFsstreamで書き出して直接開けても同じこのがおこります。 EXCELやPDFはアクセスに登録してダウンロードして開けることはできないのでしょうか? ご教授していただければ幸いです http://mevius.5ch.net/test/read.cgi/db/1234077152/403
404: NAME IS NULL [sage] 2020/01/26(日) 13:40:04.90 ID:??? MIME登録されてないだけだろ IISで設定しろ http://mevius.5ch.net/test/read.cgi/db/1234077152/404
405: NAME IS NULL [] 2020/01/26(日) 18:02:42.11 ID:BP0mZu6W そうなんですか? IISの設定なんているのですか? Response.ContentType = "application/msexcel";// MIMEコンテンツタイプを指定 ではだめなんですか? http://mevius.5ch.net/test/read.cgi/db/1234077152/405
406: NAME IS NULL [] 2020/01/26(日) 18:30:42.28 ID:BP0mZu6W しかし、ダウンロードはできるのです。 そのファイルが開けないのです。(サポートされていない形式ですのエラーメッセージ) サーバにファイルがある場合は普通にダウンロードできて開けるのです アクセス、SQLServerにバイナリデータとして登録されている場合が 開けないのです。 http://mevius.5ch.net/test/read.cgi/db/1234077152/406
407: NAME IS NULL [] 2020/01/26(日) 20:18:34.75 ID:8nfufEbl ・バイナリデータの格納 ・バイナリデータの読み込み ・データをダウンロードさせる ・(クライアントが)ファイルを開く のうち、どこまで成功してるんだ? そもそも、そのデータは「ファイルの中身」なのか? http://mevius.5ch.net/test/read.cgi/db/1234077152/407
408: NAME IS NULL [] 2020/01/26(日) 20:39:21.04 ID:BP0mZu6W バイナリはあらかじめ格納できているのです それをサーバー側からダウンロードしてアプリを自動的に立ち上げ (要はWebから自動的にPDFを開ける)のと同じようにしたいのです PDF,EXCEL,WORDなどがバイナリとしてアクセスまたはSQLServerでダウンロード して中身を見たいのです Server.MapPath(string.Format(@"./File/{0}", "Test.bmp")); のようにあらかじめファイルをディレクトリにおいたときは Respnse.writeBainaryでうまくいきます 問題はSQLServer アクセスにバイナリとして格納したときはできないのかな?と やっぱり、ディレクトリの位置だけでDBの登録してServer.MapPath でダウンロードしかないのかなと。 http://mevius.5ch.net/test/read.cgi/db/1234077152/408
409: NAME IS NULL [sage] 2020/01/28(火) 23:10:28.36 ID:??? OLEオブジェクト型はバイナリ型じゃないからな OLEヘッダ付きで格納されてるから、OLEヘッダ落とす必要があったはず http://mevius.5ch.net/test/read.cgi/db/1234077152/409
410: NAME IS NULL [sage] 2020/02/03(月) 12:35:43.47 ID:??? そうなんだ。ヘッダー落すのは先頭からバイトを削る事何ですか。わ http://mevius.5ch.net/test/read.cgi/db/1234077152/410
411: NAME IS NULL [sage] 2020/02/03(月) 21:24:17.58 ID:??? 409 確かにマイクロソフトのaspnetの分厚い本にコードの書き方書いてありましたね 少し試して見ます。thanks http://mevius.5ch.net/test/read.cgi/db/1234077152/411
412: NAME IS NULL [] 2020/02/03(月) 22:04:09.51 ID:01WTNDQb 自分の使い方が間違っているだけなのに文句を言うなよ。 http://mevius.5ch.net/test/read.cgi/db/1234077152/412
413: NAME IS NULL [age] 2020/10/29(木) 19:13:13.83 ID:??? 質問すみません。 環境: - OS: Windows 10 (バージョン 2004, ビルド 19041.572) - Visual Studio: Visual Studio 2019 Community (Version 16.7.6) - ターゲット Framework: .NET Framework 4.0/4.7.2 - Driver: Microsoft Access Driver (*.mdb, *.accdb) 16.00.4999.1000 (Access 2016 Redist) コード概要: デーモンとして待ち受け、要求に応じてDB(主に Access accdb データベース)のデータを返すプログラムです。 現象: ADODB.Connection をインスタンス化した connection を Open するとき、実行開始後初回〜数回は正常に値を取得できますが、数分時間をおいた後、再度 connection を Open すると、AccessViolationException が発生します: ``` ハンドルされていない例外: System.AccessViolationException: '保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。' ``` 現状: - デーモンのコンソールには、正常時には、結果が表示されますが、異常時(今回の現象)では「致命的なエラーです。」と表示されます: ``` 致命的なエラーです。 ハンドルされていない例外: System.AccessViolationException: 保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。 場所 ADODB.ConnectionClass.Open(String ConnectionString, String UserID, String Password, Int32 Options) 場所 Project1.Class1.Get(String[] fields, NameValueCollection nameValueCollection) 場所 C:\Users\mona\source\repos\Project1\Project1\Class1.cs:行 196 ``` - "AccessViolation|fatal ado.net|adodb connection open" 等で Google 検索すると、Close 漏れだとかの指摘がありますが、Close は必ずしています。(finally 節で connection.Close() しています) <https://okwave.jp/qa/q3428421.html> - netsh winsock reset で改善したという事例 <https://social.msdn.microsoft.com/Forums/vstudio/en-US/9e41e16b-27b2-40e3-8b6c-83930103e7b8/attempted-to-read-or-write-protected-memory-on-any-sql-connection-open-after-installing-net?forum=netfxbcl> がありましたので試しましたが改善しません。 - Provider=Microsoft.ACE.OLEDB.16.0;Data Source=C:\Users\mona\Documents\db.accdb;Persist Security Info=False; のような接続文字列の代わりにODBCデータソースでシステムDSNを定義し、DSN=db を指定しても改善しません。 - Visual Studio を管理者権限で実行しても改善しません。 - 試しにコネクションを毎回新規作成していますが改善しません。 英語サイト等も見ましたが先行事例がなかなか見つからず苦慮しています。せめてヒントでもありましたらご教示いただければ幸いです。よろしくお願いいたします。 http://mevius.5ch.net/test/read.cgi/db/1234077152/413
414: 413 [sage] 2020/10/29(木) 19:35:47.21 ID:??? 書き忘れました、データ量(レコード数)ですが、データは複数のテーブルに分かれており(特に JOIN などはしていません)、多いもので 3000件弱、少ないもので数十件です。 データ件数に関係なく発生します。 http://mevius.5ch.net/test/read.cgi/db/1234077152/414
415: NAME IS NULL [sage] 2020/10/29(木) 21:15:01.75 ID:??? ACCESSは、というかOFFICE全般で、サーバサイドでの実行はサポートされない ACE.OLEDBはサービスで動作させる設計にはなってないらしいぞ http://mevius.5ch.net/test/read.cgi/db/1234077152/415
416: 413 [sage] 2020/10/30(金) 19:40:47.64 ID:??? >>415 ありがとうございます。そもそもの使い方として想定されていなくて、せいぜい ASP.NET と組み合わせるのが関の山、といったところでしょうか。 SQLite の利用も検討します。 ちなみに、コードを精査したところ、読み出したいテーブルとは別のDB(別ファイル)にレコード追加をする時にコケているようです。 別DBへの接続を止めたらアクセス違反はなくなりました。 ただ、コード上は、それぞれ別の接続を使用していますし、デバッガでステップ実行する際も、コケない時とコケる時があるので、タイミングの問題なのかと考えています。 取り急ぎは、同じDBへの書き込みで回避できるか検討したいと思います。 http://mevius.5ch.net/test/read.cgi/db/1234077152/416
417: NAME IS NULL [sage] 2020/11/02(月) 03:29:23.50 ID:??? いや、ASP.NETでの動作もサポートされてないから http://mevius.5ch.net/test/read.cgi/db/1234077152/417
418: 413 [sage] 2020/11/03(火) 18:11:33.38 ID:??? >>417 ありがとうございます。 サポート対象外とのこと、SQLiteなりSQL Server Express なりにDBを変えてみたいと思います。 本件クローズとします。 http://mevius.5ch.net/test/read.cgi/db/1234077152/418
419: NAME IS NULL [age] 2020/12/13(日) 21:51:38.83 ID:??? tps:// youtube.com/watch?v=TTDVrOLz6MI http://mevius.5ch.net/test/read.cgi/db/1234077152/419
420: NAME IS NULL [sage] 2022/01/21(金) 02:33:21.35 ID:??? 小さな頃から優等生 http://mevius.5ch.net/test/read.cgi/db/1234077152/420
421: NAME IS NULL [sage] 2023/02/02(木) 13:02:55.86 ID:??? ( )y-~~ ( T)y-~~( T-)y-~~(T-T)y-~~ http://mevius.5ch.net/test/read.cgi/db/1234077152/421
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.011s