1 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 10:00:19 ] 前スレ VB.NET質問スレ(Part29) pc12.2ch.net/test/read.cgi/tech/1235206416/l50 テンプレは>>2 〜
577 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 21:50:59 ] 何が苦労なんだか。P/Invoke すればいいだけだろ。 pinvoke.net/default.aspx/dnsapi/DnsQuery.html とかあるし。
578 名前:550 mailto:sage [2009/07/21(火) 03:38:40 ] アプリ使用中のユーザーにフラグを設けるという案は駄目でした。 アプリが例外エラーで落ちたときにフラグをオフに出来ないからです。 なにかいい方法がありましたら教えてください。
579 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 06:10:28 ] アプリが例外エラーで落ちたときにフラグをオフにするようにしとけばいいのでは?
580 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 08:05:36 ] フラグじゃなくロックファイルを作成すればいいんじゃね? 起動したらロックファイルを作り、終了したら削除。
581 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 10:30:34 ] >>540 ないんです…。 あるプロジェクトのフォームプロパティにはあるんですが、別のプロジェクトのプロパティには無いんです。
582 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 15:59:36 ] >>580 何も解決してないからw >>578 起動時にミューテックス作成&取得。 失敗したら誰かが使用中だと解るし、プロセスが終了したら勝手に解放される。
583 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 17:44:47 ] ミューテックスってネットワーク越しでもおkなの?
584 名前:541 mailto:sage [2009/07/21(火) 19:59:35 ] >>577 このサイトいいですね 構造体やら列挙やらをVB.NET用に書き換えるのに苦労するかと思ったんだ まあ慣れた人なら機械的に変換していけるんだろうけどね
585 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 22:05:35 ] >>583 だめ。 バカだなぁ、おまえら。そういうときのために DB サーバーがあるんだろ? ・・・あれ?
586 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 22:09:21 ] だから共有フォルダにロックファイル作ればいいんだお
587 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 23:45:08 ] ミューテックスってデバッグ時に■で終了しても解放されるの?
588 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 00:05:16 ] ファイル開いてるときに強制終了したってファイルは閉じといてくれるだろ? そういうことだよ
589 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 00:52:07 ] 普通に排他で開いたらいいだけじゃないの? TableAdapterとかDataSetだからダメって何言ってるの? ところで、なんでADODBなんだよ。 TableAdapterの中見てみろ。
590 名前:587 mailto:sage [2009/07/22(水) 01:48:22 ] >>588 thx
591 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 18:41:40 ] ActiveReport 3.0で質問があります。 ページフッタのFormatイベント内で 最大ページ数を取得するにはどのようにしたらよいのでしょうか?
592 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 21:02:43 ] サードパーティ製品はスレ違い サポートに電話して聞け
593 名前:550 mailto:sage [2009/07/23(木) 02:56:47 ] >>589 排他で開いても、Datasetに取得した時点でDBの接続は切れるんで そのあと、他からもアクセス出来てしまいます。 とりあえず、皆様にはいろいろアドバイス頂きましたが、 時間も無い為、DB上のレコードにフラグを立てて使用中かどうか判断 することにしました。 強制終了して、フラグが立ったままになったらアプリを起動出来ない ちょっと痛いシステムとなってしまいましたが、バレなきゃOKです。 まだ直す時間はあるので、もしアドバイスがあったらお願いします。
594 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 08:16:35 ] それだと結局1レコードは読まないといけない訳だ やっぱロックファイルのがいいんでね? で突然死対策に1秒ごとに空更新でもして 他のプログラムはファイルがあったとしても、更新時間見て 10秒以上たってたら死亡判定とか
595 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 08:19:56 ] 監視用プログラムを別に作って常駐させとけばいんでない?
596 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 08:44:51 ] そんな面倒くさいことするか!? このメモリ浪費家がッ
597 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 08:49:49 ] 起動時にロックファイルをライトオープンで開いて 終了時にクローズするようにすれば 突然死してもファイルはクローズされるんじゃない? 多重起動の判定はロックファイルをライトオープンできるかどうかで。
598 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 09:06:09 ] できた Public Class Form1 Private sw As System.IO.StreamWriter Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try sw = New System.IO.StreamWriter("\\共有PC\共有フォルダ\lockfile.txt", False, System.Text.Encoding.GetEncoding(932)) Catch ex As Exception MsgBox("他の人が使ってますお") Application.Exit() End Try End Sub Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed Try sw.Close() Catch ex As Exception End Try End Sub End Class
599 名前:デフォルトの名無しさん [2009/07/24(金) 10:52:42 ] デザインモードで表示するとエラーになって赤い帯が上に出て エラー情報としていろいろ内部コードが表示されるやつですが、 あの情報には「〜.Designer.vb」のどこの行がNGなのかが 不明なので、どこを直せばいいのかわからない場合が多い。 こういうとき、再コンパイルしてるときもあるが、ダメなときは 開発環境自体を立ち上げ直して直るときもある。 しかしそれでもダメな場合も多い。こういうときは皆さんどんな風に して原因突き止めていますか、よろしければご指南を頂きたく。 よろしくお願いします。
600 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 14:29:29 ] .Designer.vbを直接修正するしかない
601 名前:599 [2009/07/24(金) 14:59:40 ] >>600 ですよね、で、その場合、そのどこがNGなのかの情報が、あのたくさん 出てくる内部コードの情報には出てない場合がほとんどなのでした。 どこがNGなのかがわかれば対応できるのですが、皆目情報がなくて困って いるのでした。
602 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 16:03:21 ] エラー一覧のエラーとか警告に出るけどなぁ
603 名前:599 [2009/07/24(金) 17:06:40 ] >>602 >エラー一覧 今使っているのはVS2005なのですが、デザイナー画面が出るところに ------ パスの形式が無効です。 非表示 場所 System.IO.Path.NormalizePathFast(String path, Boolean fullCheck) 場所 System.IO.Path.NormalizePath(String path, Boolean fullCheck) 場所 System.IO.Path.GetFullPathInternal(String path) 場所 System.Reflection.AssemblyName.GetAssemblyName(String assemblyFile) 場所 Microsoft.VisualStudio.Design.VSTypeResolutionService.AddProjectDependencies(Project project) 場所 Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.get_Assembly() 場所 Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.Search(String fullName, String typeName, Boolean ignoreTypeCase, Assembly& assembly, String description) ・・・ ------- こういった内部コードが現れては来るのですが何行目が悪いという情報がなく、 「エラー一覧」の中には特に表示されないのでした。どこがNGなのかわかれば ありがたいのですが、それが出て来ないのでした・・・
604 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 18:53:06 ] もっと下の方見たらどこかに自分のクラス名があるだろ その一つ上の行のメソッド名をDesigner.vb内で検索
605 名前:599 [2009/07/24(金) 19:23:30 ] >>604 どうもです!探してやってみます!・・・と思って、今もう一度デザイナー を起動したら・・・、ありゃ?何にも他のことしてないのにナンデだろ?? 直ってちゃんと出てる。。。なんだろぉ〜。 この次またNGになったらその仕方で見てみます。助かりました、大変 ご迷惑、おかけしてすみませんでした。。。 あれーそれにしても・・・。
606 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 10:57:36 ] VB.NET2003で Dim app As New Excel.Application Dim books As Excel.Workbooks Dim book As Excel.Workbook Dim sheets As Excel.Sheets Dim sheet As Excel.Worksheet のように定義すると、端末によってNew Excel.ApplicationやExcel.Workbooksが定義されていませんというようなエラーがでます。 Imports System.Runtime.InteropServices Imports Microsoft.Office.Core は記述してあり、Microsoft Excel 11.0 Object Libraryは追加してあります。 どの端末もVB2003はインストール済みで上記の設定はしてあるのですが、端末によってこのエラーが出るときと出ないときがあります。 このエラーがでないようにするにはどうすればいいのでしょうか?
607 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 11:08:32 ] Office がインストールされてないんじゃね?
608 名前:606 mailto:sage [2009/07/25(土) 12:26:01 ] >>607 ありがとうございます。 Officeはインストールされています。 上記のような現象が起きている方はいませんか?
609 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 12:40:21 ] あとは、PIA がインストールされてないとか?
610 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 13:59:09 ] OfficeのPIAは、.NET1.1以降が予めインストール済みの環境で Officeのインストールを実行しないと入らないからなあ。
611 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 14:18:40 ] >>606 Microsoft Excel 11.0 Object Libraryへの参照をプロジェクトに追加したときに VSが自動的に生成するCOMラッパークラスの入ったdll(生成されるファイルのファイル名は忘れた) が実行環境にインストールされてないんでしょ。 プロジェクトエクスプローラを「全てのファイルを表示」にしてる? っていうか、こんな初歩的なことも知らないとしたら相当ヤバいな。
612 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 14:30:29 ] >>611 Interop.Excel.dll Interop.Office.dll あたり?
613 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 18:25:49 ] >>589 だからコネクションは自分で明示的に開けばいいの。 なんのためにConnectionプロパティが生成されると思ってんだ。 TableAdapterだからって接続したままに出来ない理由はない。
614 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 18:27:05 ] >>589 じゃなくて>>593 だった。 自分に突っ込んでどうする…
615 名前:606 mailto:sage [2009/07/25(土) 19:13:53 ] >>609-612 ありがとうございます。 Interop.Excel.dll Interop.Microsoft.Office.Core.dll は存在して、参照設定から見えていたと思います。 >OfficeのPIA 他の人もアセンブリの問題で色々苦労していたようなので、これが原因なのかもしれません。 Dim app As Object Dim book As Object Dim sheet As Object app = CreateObject("Excel.Application") こんな感じだと正常に動作するようなんですが…
616 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 19:35:52 ] >>615 ところでそれってソース開いたときにエラーとかじゃ無くって 実行するときにエラーってことだよね? 念のため
617 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 20:08:07 ] >>615 人の話ちゃんと聞こうよ。 参照設定は大丈夫か?なんていってないでしょ。 実行環境の話をしてるんだよ。 その2つがユーザーのマシンにもちゃんと入ってるの? いやまず間違いなく入ってないんだってば・・・
618 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:06:43 ] 開発環境 VS 2008 アプリケーション固有のメッセージを外部ファイルとして保存して、 プログラム側で起動時に読み込むようなものを作成しています。 上記のプログラムを作成するための定石、または、.NET Framework標準の クラスなどが存在していますか? ご存知の方がいれば、教えてください。 現在は外部ファイルをXMLにして、 DataTableのReadXMLで読み込む手法をとっています。
619 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:08:51 ] ResourceManager とかだな。 プロジェクトのプロパティから追加すれば、簡単に扱えるよ。
620 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:11:39 ] その固有のメッセージってのはアプリのインストール後にテキストエディタとかで修正したりするモンなの?
621 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:15:49 ] VB2008EEでExcelにデータを書き出すソフトを作っています。 使う人によってExcelのバージョンがまちまちなのでCOMは使わず以下のような感じです。 Dim xlApp As Object Dim xlBook As Object Dim xlSheet As Object xlApp = CreateObject("Excel.Application") xlBook = xlApp.Workbooks.open(パス) xlSheet = xlBook.Worksheets(1) xlSheet.Cells(1, 1).Value = "あああ" '※1 xlSheet.Cells(1, 2).Value = "いいい" '※2 xlApp.DisplayAlerts = False xlBook.Save() xlBook.Close() xlApp.Quit() xlSheet = Nothing xlBook = Nothing xlApp = Nothing GC.Collect() データを入力する部分で、※1だけなら問題ないですが※2を追加するとプロセスが残ってしまいます。 何が原因なのでしょうか。 開発環境のExcelは2000です。
622 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:24:44 ] 思いっきりCOM使ってるよそれ vb.net excel プロセス でググるといろいろ出てくる ちゃんと作るのは非常に面倒だからそこだけWSHのVBSなんかで書いてもいいよ
623 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:42:22 ] >>619 情報ありがとうございます。 試してみます。 >>620 テキストファイルで修正できることを前提にしています。 開発終了後にそんな日が来るとは思いませんが、 どっかのエロいアーキテクトが書いたらしい規約に従う必要があるので……
624 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:45:48 ] >>622 レスありがとうございます。 COM参照を先にするかあとにするかだけで処理は一緒って認識で合ってますか?オブジェクト使う度に解放が必要と。 WSHは使ったこと無いので調べてみます。
625 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:49:39 ] いやGCに頼るのは不確実だからMarshal.ReleaseComObjectを使って 必ず逐一全て手動で解放する必要がある
626 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 23:07:25 ] >>616 ソリューションファイルを開いたときに、New Excel.ApplicationやExcel.Workbooksの所に波線が引かれ、コンパイルができないのです。 >>617 dllが存在しないと、参照設定のExcelとかInterop.Microsoft.Office.Coreのところに三角のマークが出るような気がしました。 確かに全てのファイルを表示にはしていなかった可能性があるので、obj配下にdllが存在しなかったのかもしれません。
627 名前:606,626 mailto:sage [2009/07/25(土) 23:12:27 ] 参照設定のExcel等の所に三角マークが出ていなかったので、Interop.Excel.dll等は存在するものと思ったのです。
628 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 23:17:26 ] >>625 できました。ありがとうございました。 ちなみに>>621 はMSのサンプルを真似たものなんですが、結局全然違うコードになりました。 あのサンプルは一体何だったんでしょうか…。
629 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 23:22:08 ] >>626 それ一番最初に書くところ みんな実行時だと思ってたんだから でね、それは単に参照が無いだけだから
630 名前:606 mailto:sage [2009/07/25(土) 23:26:56 ] >>629 ありがとうございます。 プロジェクトのディレクトリごとコピーしているので、obj配下にdllはあるのではないかと思います。 参照設定でも三角マークは出ていませんし。 全く同じコードをプロジェクトごとコピーしたのに、端末によってコンパイルができない理由がわからないのです。
631 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 00:00:18 ] >>630 あーもう じゃ「参照が有効になってない」って言えばいい? 一度参照削除してもう一度登録しなおしてみ?
632 名前:606 mailto:sage [2009/07/26(日) 00:15:33 ] >>631 どうもです。 一度参照設定のExcel等を削除して登録し直したのですが、それでも駄目でした。 どうも端末依存でアセンブリの問題があるらしいので、それが原因のような気もしているのです。 他の人も逆に私がコンパイルできない端末でないとコンパイルできないようなことを言っていたし、 端末固有の設定がおかしいのかもしれません。
633 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 00:25:12 ] 2003時代にエクセルを参照したプロジェクトを複数の開発環境に持ってくことを 何度かやったことがあるけどそんな問題は起こった記憶がないな。 まさかとは思うけど、 (1) 環境ごとにエクセルのバージョンが違う (2) エクセルそのものがインストールされてない なんてことはないよね?
634 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 00:34:48 ] >>633 ありがとうございます。 エクセルはインストールされていて、両方2003だったと思います。 コンパイルできない端末には確かFlex Gridがインストールされているなど、特殊な設定がなされているのです。 自宅では問題なくコンパイルできていますし、やはり端末依存の問題なのかもしれません。 Marshal.ReleaseComObjectを使っても逆に不安定になったりするし、.NETからエクセルを動かすのは難しいなぁ。
635 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 00:48:31 ] あー それは複数のassenblyファイルがある場合だわ 消したらいいよ。
636 名前:550 mailto:sage [2009/07/26(日) 01:14:25 ] >>598 それよさそうですね。 ちょっと試してみようと思います。 ただ問題は、ロックファイルの出力先が固定になっている部分です。 mdbファイルの場所を移動しても探せるように、Connectionstringをいじれる仕様なので、 ロックファイルの出力先アドレスをxmlファイルに保存しなきゃいけないかも知れません。 納期が近い為、そこまで手が回りませんが参考になりました。 どうもありがとうございました。
637 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 01:17:10 ] >>635 AssemblyInfo.vbではなく、確かWindowsディレクトリ配下にアセンブリファイルがあり、それが端末によって異なっているせいで 端末によってコンパイルできたりできなかったりするような話は聞きました。 Dim app As Object Dim book As Object Dim sheet As Object app = CreateObject("Excel.Application") こんな感じに書くとコンパイルできるようなので、もうコードを書き直すしかないのかなと思っています。
638 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 01:43:08 ] >>636 普通app.configに書かない?
639 名前:550 mailto:sage [2009/07/26(日) 01:44:08 ] >>598 ただいま、試験的にプログラムを作って動かしたんですが、完璧ですね。 streamwriterをcloseしない限りは、そのアプリが専有で開いてるから 他からのアクセスが出来ないってことですね。 プログラムが異常終了しても自動的にlockfileへの専有が外れるから 他からのアクセスが可能になるということですね。 これかなりいいと思います。 ありがとうございました。
640 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 02:01:26 ] >>639 当初の質問と関係なくなってるなw
641 名前:550 mailto:sage [2009/07/26(日) 02:33:32 ] lockfileを隠しファイルにしたかったんですが、隠しファイルにすると VBから見えてないのか、Streamwriterで例外エラー拾いますね。 たいした問題じゃないので我慢するしかないですねこれは・・・
642 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 20:18:52 ] 排他Openできるんならコネクションを開いたままにしとけばいいって何度も言ってるのに なんでわざわざ独自に作りこむのかね。
643 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 20:24:27 ] その方法がわからないからだろハゲ
644 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 20:58:34 ] 全コードで TableAdapter の Connection 書き換えれば 排他で開きっ放しに出来るだろうけど手間考えたら >>598 みたいな方法が一番簡単だな
645 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 21:09:33 ] そもそもその排他オープンが安全なのかが怪しいんだよね それなら別次元の排他処理をしてしまうのもあり だいたいちゃんとするならDBサーバーを入れるべきだし。
646 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 06:22:32 ] Dim psi As New System.Diagnostics.ProcessStartInfo Dim p As System.Diagnostics.Process Dim ssPath As String = "C:\Program Files\Microsoft Visual Studio\VSS\win32\ss.exe" Dim ssDir As String = "C:\Program Files\Microsoft Visual Studio\VSS\win32" Dim ssUser = "user" Dim ssPwd = "user" Dim GetPath = "D:\work" If ssPath.IndexOf(" ") > 0 AndAlso ssPath.Substring(0, 1) <> """" Then ssPath = String.Format("""{0}""", ssPath) End If 'ComSpecのパスを取得する psi.FileName = System.Environment.GetEnvironmentVariable("ComSpec") '出力を読み取れるようにする psi.RedirectStandardInput = False psi.RedirectStandardOutput = True psi.UseShellExecute = False 'ウィンドウを表示しないようにする psi.CreateNoWindow = True 'コマンドラインを指定("/c"は実行後閉じるために必要) psi.Arguments = "/c " & ssPath & " get -gtm " & sName & " -GL" & GetPath & " -Y" & ssUser & "," & ssPwd '起動 p = System.Diagnostics.Process.Start(psi) result = p.StandardOutput.ReadToEnd こんな感じでVSSから最新バージョンを取得しているのですが、データベースのパスを指定したいと思い、 psi.Arguments = "/c set SSDIR=" & ssDir & " && " & ssPath & " get -gtm " & sName & " -GL" & GetPath & " -Y" & ssUser & "," & ssPwd のようにset SSDIRを追加すると取得できなくなってしまいます。 どこが間違っているのでしょうか?
647 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 07:40:11 ] &で文字列連結すんな
648 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 08:02:57 ] >>647 ildasmで見ると、String.Concatで連結されているのが確認できるよ。 こういう一連の連結に使う分には何ら問題は無い。
649 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 08:06:19 ] && だと環境変数は引き継がれないみたいだね
650 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 08:22:00 ] 連結後に更に連結するなら、せめてString.Formatを…。 読みにくくてかなわん。
651 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 08:36:24 ] 少しヒント cmd /c"set AAA=XXX && echo %AAA%" %AAA% cmd /V:ON /c"set AAA=XXX && echo !AAA!" XXX
652 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 23:07:00 ] 複数のBMPの画像をAVI動画に変換する方法を大まかにおしえて
653 名前:646 mailto:SAGE [2009/07/28(火) 00:10:18 ] みなさんありがとうございます。 週末に試してみようと思います。
654 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 01:10:35 ] >>652 1.Windows ムービー メーカー を起動する 2.対象の画像を読み込む 3.ムービーの発行でDV-AVIを選んで実行 4.AVI動画が完成\(^o^)/
655 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 22:21:11 ] ODP.NETを使用し、パッケージをコールしてDataSetを取得し、 コンボボックスのDataSourceにDataTableを入れたのですが、 中身が表示されません。 DisplayMemberとValueMemberプロパティにも項目名を設定しています。 セットした後に、SelectedValueとSelectedTextの値を見ると、 SelectedValueには値が入っていますが、SelectedTextには値がありません。 パッケージをコールすると、 表示する用の文字列と裏で持つ用の文字列を複数レコード取得します。 調べても、問題ないと思うのですが何が悪いのでしょうか? combo1.DataSource = DataTable combo1.ValueMember = "AAA" combo1.DisplayMember = "BBB" 試しに、AAAとBBBを逆にセットしてみたのですが、やはりSelectedValueの方しか値が入っていません。 よろしくお願いします。
656 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 22:26:57 ] DataTable には値が入ってるの?
657 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 22:27:00 ] SelectedTextはコンボボックスのテキスト入力部の、コピーとかのために「選択」してる文字列だから
658 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 22:32:58 ] >>656 DataTableには値がちゃんと入っています。 デバッグでも確認しましたし、DataGridViewに突っ込んで確認しています。 >>657 そこは調べ不足でした。SelectedItemで確認するのが正しいですね。 最悪、ループでAddしていくしかないですかね…
659 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 22:37:50 ] もう少し、ちゃんとしたコード出してみ。 DataTable の指定とかおかしそうな気がする。
660 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 22:43:14 ] >>659 ソースが手元にないので、覚えている範囲で書きます。 Using ds As DataSet = (オラクルパッケージをFillメソッドで実行) Using dt As DataTable = ds.Tables(0) combo1.DataSource = dt ←このdtをDataGridViewに入れ、値が入っていることを確認 combo1.ValueMember = "AAA" combo1.DisplayMember = "BBB" End Using End Using こんな感じです。
661 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 22:48:35 ] Disposeしてどうするあほかよ
662 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 23:31:00 ] >>661 うわっ、すいません。初歩的な所で… なぜ、DataGridViewは表示されたままだったのでしょうか?
663 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 11:41:38 ] String.Formatの書式について教えて下さい。 String.Format("合 計 {0,12:\\###,###,##0}", dTotal) → 合 計 -\9,000 String.Format("合 計 \{0,12:###,###,##0}", dTotal) → 合 計 \ -9,000 String.Format("合 計 {0,12:\\-###,###,##0}", dTotal) → 合 計 -\-9,000 dTotalがマイナスの場合は-1をかけて、 String.Format("合 計 {0,12:\\-###,###,##0}", dTotal)とすれば 合 計 \-9,000になるのですが、それ以外の方法で 表示させるにはどうしたらいいでしょうか?
664 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 11:45:45 ] セクション区切り記号 ; を使えば正負でそれぞれに書式指定できる 使い方はカスタム数値書式指定文字列のページ見れ
665 名前:デフォルトの名無しさん [2009/07/30(木) 13:01:18 ] VBNETの入門書2冊読破したんだけどどうすればいい?
666 名前:663 mailto:sage [2009/07/30(木) 13:03:44 ] ありがとうございます。 おかげさまで出来ました! もっと勉強します。
667 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 13:53:02 ] 自動更新で下のやつがきたんだけど手動でダウンロードできないんでしょうか? できるのであれば方法を教えてください Visual Studio 2005 Service Pack 1 セキュリティ更新プログラム(KB971090)
668 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 14:00:15 ] KB番号ググりゃ見つかるだろ
669 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 14:08:44 ] >>667 それクソ時間かかるよな。SP1 のときも思ったけど。
670 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 14:51:40 ] なんか、やってることはほぼ再インストールと同じなんだそうだ。 だから、DLしてもどっちみち時間かかる
671 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 17:10:06 ] >>669 そうそう だから手動でダウンロードしたいわけなのよ
672 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 17:25:13 ] www.microsoft.com/downloads/details.aspx?familyid=7c8729dc-06a2-4538-a90d-ff9464dc0197&displaylang=ja 249MBワロタ
673 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 17:33:05 ] .NETからEXCEL使ってなんかやるとき、STAThreadじゃなくてMTAthreadだと、 なんか問題あったりするんでしょうか? EXCELのオブジェクトを作成したスレッド以外から使ったりはしない前提です。 なんかイマイチこの辺を理解してないんです。
674 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 17:49:22 ] >>672 ありがとうございます