VB.NET質問スレ(Part37)

このエントリーをはてなブックマークに追加
802デフォルトの名無しさん:2011/12/08(木) 09:42:49.24
細かいことは気にスンナよ
803デフォルトの名無しさん:2011/12/08(木) 10:03:29.45
Excelのセルから値を読み込んだときにnullかどうかの判定って
どうやればいいでしょうか?

if xlRange.Value = null then
end if

みたいなことをしたいのですが。

Dim xlRange As Object
xlRange = xlCells(1, 1)
ListBox1.Items.Add(xlRange.Value)
804デフォルトの名無しさん:2011/12/08(木) 10:31:53.24
If xlRange.Value Is DBNull.Value Then

でいけないかい?
805デフォルトの名無しさん:2011/12/08(木) 10:35:07.45
>>804
いけませんでした。
806デフォルトの名無しさん:2011/12/08(木) 10:59:39.67
DBNull.Value は値だから Is は駄目だろ

If xlRange.Value.Equal(DBNull.Value) Then

でいけないか?
807デフォルトの名無しさん:2011/12/08(木) 11:19:13.46
>>806
ありがとうございます。

If Not xlRange Is Nothing Then
If Not xlRange.value Is Nothing Then
If Not xlRange.value.Equals(DBNull.Value) Then
ListBox1.Items.Add(xlRange.Value)
End If
End If
End If

でいけました。
808デフォルトの名無しさん:2011/12/08(木) 18:16:30.26
>>806
そっかー
809デフォルトの名無しさん:2011/12/08(木) 19:42:59.27
そこを

If Not xlRange Is Nothing AndAlso Not xlRange.value Is Nothing AndAlso Not xlRange.value.Equals(DBNull.Value) Then
  ListBox1.Items.Add(xlRange.Value)
End If

とすると美しくてよろしい。
810デフォルトの名無しさん:2011/12/08(木) 20:07:12.51
AndAlso = And ?
811デフォルトの名無しさん:2011/12/08(木) 20:24:09.79
>>810 ショートサーキット

xlRange IsNot Nothing AndAlso xlRange.Value <> ""
これで十分じゃね?
個人的には、xlRangeにNothingの可能性がある方に違和感があるけど。
そんなのはAssertで自爆しておくべきパターンな気がする。
812デフォルトの名無しさん:2011/12/08(木) 23:39:46.50
画像ファイル以外のものにexif情報をつけて保存したら何か不都合は出ますか?
813デフォルトの名無しさん:2011/12/09(金) 00:05:05.43
彼女ができたんですが、InsertするとオブジェクトインスタンスがなんちゃらかんちゃらでうまくInsertできません
814デフォルトの名無しさん:2011/12/09(金) 02:00:56.32
彼女がNothingなんじゃね
815デフォルトの名無しさん:2011/12/09(金) 06:32:16.00
UTF-8
のテキストファイルを開業するには
VbLF VbCR VbCRLF
どれつかうん?
816デフォルトの名無しさん:2011/12/09(金) 06:57:00.79
文字符号化形式と改行文字は無関係
817デフォルトの名無しさん:2011/12/09(金) 11:45:09.96
System.Environment.NewLine使っとけば?
818デフォルトの名無しさん:2011/12/09(金) 14:02:26.33
vb 2010に於いて、以下のことを実現したいです。

元々Access使いであるため、なかなかVB.NET特有のコーディングにまだ慣れていません。

実現したいことは、
・DataRepeaterコントールに表示されているもので、現在選択しているレコードの背景色を変えたい

というものです。背景色は空っぽの四角いコントロールをAccessの時には使っており、現在選択した
場合、背景色を黄色にするようにしてます。

http://www.rupan.net/uploader/download/1323406924.jpg
819デフォルトの名無しさん:2011/12/09(金) 17:01:03.29
test
820デフォルトの名無しさん:2011/12/09(金) 17:06:38.44
test禁止
821デフォルトの名無しさん:2011/12/09(金) 17:38:46.34
testのtest
822デフォルトの名無しさん:2011/12/09(金) 19:09:47.88
>>818
CurrentItemIndexChangedイベントでCurrentItemの背景色を変える。
同時に以前のレコードの背景色を戻せば完了。
初めてDataRepeater使ったから大分適当だけど、こんな感じじゃね?
823デフォルトの名無しさん:2011/12/10(土) 01:13:30.19
Datarepeaterってなかなか思った通りに動いてくれなくない?
通常のコントロールの感覚で使って大ハマりしたよ。
824デフォルトの名無しさん:2011/12/10(土) 03:10:39.95
Datatableから特定のキーワードを検索する方法で、一番効率的な方法を教えて下さい。
ちなみに、大文字小文字は気にしません。
825デフォルトの名無しさん:2011/12/10(土) 05:23:19.33
スキームとかソルーションてなに?
826デフォルトの名無しさん:2011/12/10(土) 11:01:32.08
>>824
selectメソッドでいいだろ。
827デフォルトの名無しさん:2011/12/10(土) 13:23:48.64
>>822
頑張ってみまふ

また報告します
ありがりう
828デフォルトの名無しさん:2011/12/10(土) 13:23:52.01
>>826
selectだとupperとかかけられないんですよ
829デフォルトの名無しさん:2011/12/10(土) 19:07:38.68
>>824
Linq使え。
もしくは拡張メソッドを使って、AsEnumerable().Select(〜)ってやるとか。
これなら条件を好き放題指定できる。
830デフォルトの名無しさん:2011/12/10(土) 19:32:59.85
WhereでString.EqualsにIgnoreCase指定すりゃいいだけじゃないの?
831デフォルトの名無しさん:2011/12/10(土) 21:39:02.17
linqって抽出遅くないか?
832.:2011/12/10(土) 22:37:03.01
>>809が美しいって感性が理解できない

3つぐらいなら、NOTが入り交じった条件式で繋げず、ネストした方が可読性が高かろうよ
833デフォルトの名無しさん:2011/12/10(土) 23:27:05.37
いやIsNot使えばいいだけだろ
834デフォルトの名無しさん:2011/12/10(土) 23:31:21.94
まあ目糞鼻糞だねw
>>807-809的なものはメソッドに括りだすのが一番。
それなら、もしAndAlsoで繋げるのが気に入らないなら途中でreturnする手も使える。
835デフォルトの名無しさん:2011/12/10(土) 23:43:46.00
VB2008まではC#みたいに任意の改行が出来ない以上、ネストの方が大概読みやすい

行継続文字?なにそれ
836デフォルトの名無しさん:2011/12/10(土) 23:53:37.03
CheckedListBoxでn番目のアイテムにチェックがついているかいないか調べるにはどうやればいいですか?
837デフォルトの名無しさん:2011/12/11(日) 00:00:50.16
Checkedプロパティを調べる

以上
838デフォルトの名無しさん:2011/12/11(日) 00:01:55.17
GetItemCheckedだろ?
839デフォルトの名無しさん:2011/12/11(日) 00:42:47.37
でけた(^ー^)d
840デフォルトの名無しさん:2011/12/11(日) 09:07:07.88
http://nyannyan3.minidns.net/up/2011_12_11a.png
表示を
2011/12/11 09:01:59
にするにゎどぉすれば
841デフォルトの名無しさん:2011/12/11(日) 10:47:41.95
Now().ToString("yyyy/MM/dd HH:mm:ss")
842デフォルトの名無しさん:2011/12/11(日) 17:28:04.00
FolderBrowserDialogを使いたくないのでSaveFileDialogでフォルダを選択したいのですが、
良い方法があったら教えてください
843デフォルトの名無しさん:2011/12/11(日) 18:46:21.90
それを良い方法だという人が100人に一人もいるとは思えませんが
844デフォルトの名無しさん:2011/12/11(日) 19:46:42.58
VS2010のディレクトリ選択は、
OpenFileDialogをカスタマイズして作ってあるように見えるな。
あれを参考に色々試したら良いんじゃね?
ちなみに、VS2010+Open/SaveFileDialog+デバッグは鬼門だから注意w
845デフォルトの名無しさん:2011/12/12(月) 01:27:15.18
なんとなくはっちゃけあやよさんを思い出した
いやなんとなく
846デフォルトの名無しさん:2011/12/12(月) 09:05:50.11
>>844
鬼門って具体的にvs2008までとどう違うの?
847デフォルトの名無しさん:2011/12/12(月) 12:52:53.47
フォームを最小化しているときにノーマル状態の時の位置を知るにはどうやれば良いですか?
848デフォルトの名無しさん:2011/12/12(月) 20:19:13.76
>>846
家のx64Win7だと、OSを巻き込んで固まる。
サンプル数が少ないから、知らぬ間に特殊な条件を満たしてしまっているとか
あるのかもしれないけど、正直ウンザリする。
849デフォルトの名無しさん:2011/12/13(火) 01:51:16.50
VS2010はうちも不安定やな
850デフォルトの名無しさん:2011/12/13(火) 10:09:36.93
vs2010はけっかんひんですね。
851デフォルトの名無しさん:2011/12/14(水) 00:44:20.77
KeyPressイベントで、数字でないなら、テキストボックスへの入力を不可にするPGについて。

If文を使って数字でないときの処理を、e.Handle=Trueとしていますが、何故Trueなんですか?
無効にするならFalseではないのでしょうか?
852デフォルトの名無しさん:2011/12/14(水) 03:30:32.60
Handledな
既に処理済みだからもう処理しなくていいという意味
853デフォルトの名無しさん:2011/12/14(水) 12:30:23.11
その説明で、ますます分からなくなりました。
854デフォルトの名無しさん:2011/12/14(水) 12:46:25.96
今日は超寒い
855デフォルトの名無しさん:2011/12/14(水) 13:22:46.67
細かいことを気にしていたらプログラミングなんぞできない
856デフォルトの名無しさん:2011/12/14(水) 16:11:27.73
そう思ったので、トルューにすると暗記ですませました。
857デフォルトの名無しさん:2011/12/14(水) 19:27:58.40
e.俺がイベントを処理したからもういい=True
-> e.処理済み=True
-> e.Handled=True
858デフォルトの名無しさん:2011/12/14(水) 20:19:14.07
むしろFalseが無効だと誰が決めた
859デフォルトの名無しさん:2011/12/15(木) 13:46:52.36
以下のようなプロシージャーの引数を定数にすることは可能でしょうか?
const指定とか出来ないみたいですが・・・

Private Sub Proc(str As String)

End Sub
860デフォルトの名無しさん:2011/12/15(木) 13:53:38.31
日本語で
861デフォルトの名無しさん:2011/12/15(木) 14:50:19.74
>>859
C++から来た人?
VB.NETに引数のconst化は無いんじゃないかなぁ…。少なくとも私は知らない。
Subが始まってから
Const Dim strcopied As String = str
みたいにして、以降はstrcopiedを使うようにすれば回避できない事もないかも。
MonoDevelopでやって確認してみたら、
strcopiedはstrと参照も同じでかつ変更不可になってたのでいけてそげ。
用途に合ってるかどうかは分からないけど。
862デフォルトの名無しさん:2011/12/15(木) 15:28:50.24
>>861
レスありがとう。
VBはプロシージャーの引数はConstには出来ないのですね。
863デフォルトの名無しさん:2011/12/15(木) 16:17:38.69
VB6.0から久々にVBに触ります。
最近はWithステートメントって使わないのかな?
いろんなサンプル見てるけど、全然見かけない。
864デフォルトの名無しさん:2011/12/15(木) 21:04:21.79
全く別の言語なのでVB6なんて忘れましょう
865デフォルトの名無しさん:2011/12/15(木) 21:12:35.15
with使えば少しは早くなるかと思ってガンガン使ってたが違うん?
866デフォルトの名無しさん:2011/12/15(木) 21:14:53.75
まず関係ない
重いプロパティの場合でもローカル変数に代入すれば同じ
867デフォルトの名無しさん:2011/12/15(木) 21:19:42.69
コード打つ速度は微妙に上がってそうな気はする
868デフォルトの名無しさん:2011/12/15(木) 21:48:02.37
わざわざローカル変数を宣言しなくて済むのは手軽だったけど、
OptionInfer使えば型推論で簡単に代入できるから、存在が微妙になったな。
869デフォルトの名無しさん:2011/12/15(木) 23:02:06.11
ウォッチがし辛いから使わない
870デフォルトの名無しさん:2011/12/15(木) 23:03:44.94
FolderBrowserDialogでフォルダを選びたいのですが、
開こうとするパスに沢山のファイルがあると選択可能な状態になるまで時間がかかるので
なんとかしたいのですが回避できる方法があったら教えてください。
(ディスクが動き続けて3分くらい砂時計になってしまいます)
871デフォルトの名無しさん:2011/12/16(金) 00:21:58.37
>>863
俺は全然使うけどね。
ネストするような使い方しなければ、特に害も無いし読みやすい。
872863:2011/12/16(金) 00:41:30.45
皆様、お返事ありがとう。
入門書やサイトのサンプルコードに全然使われてないから、
使うと実行速度に問題があったりするんかなぁって思ってたりしました。
自分も使うのが好きなので、ガンガン使っていこうと思います。
ありがとうございました。
873デフォルトの名無しさん:2011/12/16(金) 00:46:53.38
へんな使い方するとかえって読み辛くなるからなぁ。
874デフォルトの名無しさん:2011/12/16(金) 00:47:34.87
MS公式のサンプルコードって基本的にC#で書いてVBに変換してるからC#に合わせた書き方になる
入門書やサイトはそれ見て書くわけだから
875デフォルトの名無しさん:2011/12/16(金) 10:04:10.40
VB6から移ってきました。

フォームのコードウィンドウの上2つのコンボボックスから
オブジェクトとイベントとを選ぶと、Private Sub XXX 〜 End Sub が作られると思いますが
ソースの途中に挿入される場合と、末尾に挿入される場合とがあります。

たとえば、ボタン_DoubleClick のイベントを生成済みで、新たに Click イベントの中を書きたいとき
ボタン_DoubleClick の前に ボタン_Click が入るのが VB6 では普通でしたが、後ろにくっつくことがあります。

手動でコピペして移動させないと、オブジェクトに対するイベントがソースのあちこちに散らばってしまいます。
これは、こんな仕様なんでしょうか?

どこかで一括ソートとかかけれるならいいんですが。
876デフォルトの名無しさん:2011/12/16(金) 12:58:16.52
>>873
だから変な使い方しなければいいんだよ。
目安としてwithの範囲が一画面に収まる場合のみ使えば問題ない。
877デフォルトの名無しさん:2011/12/16(金) 21:36:55.24
>>876
見やすい見辛いはそれでいいかもしれないけど、
ウォッチウインドウで見たい時とか面倒じゃない?
878デフォルトの名無しさん:2011/12/16(金) 22:11:26.25
>>877
意味分かりませんが....
879デフォルトの名無しさん:2011/12/17(土) 00:01:16.99
>>878
With hoge
  fuga = .piyo
End With
こう書くとデバッグ時にpiyoの値をウオッチウインドウとかイミディエイトウインドウで見たい時に
「hoge」と「.piyo」の2回に分けてコピペとか反転してD&Dとかしなきゃいけないけど、

Dim h = hoge
fuga = h.piyo
こう書いていれば「h.piyo」の部分1発で済む

ってことを言いたかった。
880デフォルトの名無しさん:2011/12/17(土) 00:16:59.48
自作メソッドを普通のメソッドと同じように使いたいのですが
インスタンスを作成しなくても使えるようにすることが出来ればその方法を教えてください。
881デフォルトの名無しさん:2011/12/17(土) 00:17:09.67
ウォッチ必要な時は、その程度の面倒の差なんてどうでもいいなぁ。

あと、ローカル変数作った程度じゃ速度への影響は皆無だとしても、無駄な処理してる感がしてどうにも気持ち悪い。
いちいちローカル変数の定義確認してからじゃないと読めなくなりそう。
882デフォルトの名無しさん:2011/12/17(土) 00:23:55.18
>>880
Sharedをつける

Public Shared Sub MyMethod()
End Sub
883デフォルトの名無しさん:2011/12/17(土) 00:24:55.98
.NETでは普通のメソッドと自作のメソッドの違いは一切無いし
インスタンスを作成しないといけないメソッドのほうが普通
884デフォルトの名無しさん:2011/12/17(土) 00:29:01.70
>>880
普通のメソッドのうち、インスタンスを作成してなくても使えるメソッドに「Shared」って付いてないか?
885デフォルトの名無しさん:2011/12/17(土) 00:30:41.55
>>879
微妙だなあ....
まあWithなんてめったに使わないからそれほどWithを擁護したいわけじゃないんだけど
886デフォルトの名無しさん:2011/12/17(土) 00:32:52.71
VBだとモジュールという糞もあるからな
それを普通と言ってるのかもしれない
887デフォルトの名無しさん:2011/12/17(土) 00:58:04.32
Sharedつけたらできました!
どうもありがとー^^
888デフォルトの名無しさん:2011/12/17(土) 13:33:02.41
インスト時に不明なエラーでるけど、どうすればいい
889デフォルトの名無しさん:2011/12/17(土) 13:37:45.54
どうしようもない。
890ビートたけし:2011/12/17(土) 14:26:59.79
>>885
DB系アプリ作っていると、頻繁に使うよ。
891デフォルトの名無しさん:2011/12/17(土) 14:30:14.69
無いなら無いで別に困らない
実際用途がだいたい同じC#では検討の結果不要ということで削られたんだし
892デフォルトの名無しさん:2011/12/17(土) 14:54:01.44
VBでブロックをでっち上げる事ができるという利点も無くはないかな。
C#だと{}で囲めば済む話なんだけど。
893デフォルトの名無しさん:2011/12/17(土) 15:46:31.16
これから何をしようとしたか思い出せない助けて
894デフォルトの名無しさん:2011/12/17(土) 16:36:28.80
とりあえず一発抜いとけ
895デフォルトの名無しさん:2011/12/17(土) 18:41:20.69
>>890
だよね
896デフォルトの名無しさん:2011/12/17(土) 19:22:00.69
SqlCommand の中身とか、With なしに書きたくない
.Parameters.AddWithValue 〜 の羅列
897デフォルトの名無しさん:2011/12/19(月) 16:26:00.47
毎度お世話になります。

現在、リストボックスとMDBをつなげて表示している項目がありますが、以下の条件の時にループでリストボックスで
選択されている項目のvaluemember値を取得してデータテーブルに格納したいのですが、うまくいってません。

1.リストボックスにはAテーブルがデータソースとして指定
2.リストボックスのvaluememberにはAテーブルの固定資産IDというフィールドが連結
3.リストボックスのSelection Modeは、MultiSimpleで複数選択出来る状態

この時以下のようなループを描いてます。

For i = 0 To ListBox11.SelectedItems.Count - 1
varTemp = ListBox11.SelectedValue
  
  以下、varTempの値を用意してあるデータテーブルに格納するルーチン

Next

しかし、1個目に選択した値だけが選択されつづけて、データテーブルにはその固定資産IDが何列も入ってしまい
ました。どのようにしたら、リストボックスから複数選択した値をループで取得できるのでしょうか?
898デフォルトの名無しさん:2011/12/19(月) 16:45:03.27
どうしてListBox11.SelectedValueがループ毎に変わっていくと思ったのだろ
SelectedItems(i)
カウンタ不要ならFor Each varTemp In ListBox11.SelectedItems
899デフォルトの名無しさん:2011/12/19(月) 16:58:16.70
>>898
両方トライしてみました。

前者の場合、エラーが出て値を取得できませんでした。
エラー:型 'DataRowView' から型 'String' への変換は無効です。

後者の場合、値は最初の1つ目は取れてもその後延々とループしつづけてしまいました。
900デフォルトの名無しさん:2011/12/19(月) 17:24:27.62
>>898
考え方を変えてみて以下のコードで実験してみました。

For Each Row3 As DataRowView In ListBox11.SelectedItems
MessageBox.Show(Row3("固定資産ID"))
Next

無事、取得することができました。

煮詰まっていて、おかしな質問してしまい申し訳ありません。
901デフォルトの名無しさん:2011/12/20(火) 09:15:04.12
>>898
お陰様で、リストボックスをうまく使えるようになり、実装できました。本当にありがとうございます。
ウィザードフォームに組み込んで今は使っています。

http://www.rupan.net/uploader/download/1324340046.jpg
902sage:2011/12/21(水) 11:20:37.78
ゼミの課題でVBの課題出されたんだけど全然わからん…
http://www1.axfc.net/uploader/File/so/72943
ここに問題上げたんだけど誰かおしえてもらえんでしょうか…
903デフォルトの名無しさん:2011/12/21(水) 11:37:07.81
>>902
宿題スレへ
904デフォルトの名無しさん:2011/12/22(木) 02:29:09.12
VB2008ExpressEditionでつくったアプリケーションを、Windows Phone で使えますか?
905デフォルトの名無しさん:2011/12/22(木) 03:29:08.71
使えない。専用の開発環境が必要。
一応VBは使えるけどSilverlightだからほとんど互換性ないしサンプルも少ないからC#の方がいいよ。
906デフォルトの名無しさん:2011/12/22(木) 12:45:33.68
文字列を半角とか全角に変換する目的のメソッドや関数は
StrConv以外にありますか?
907デフォルトの名無しさん:2011/12/22(木) 14:43:47.81
.NETの文字列はUnicodeだからそんな概念は存在しない
ブイビーでは互換性用に残ってるだけ
908デフォルトの名無しさん:2011/12/22(木) 19:24:20.15
Windows APIにLCMapStringって関数があるよ
やってることはStrConvとほぼ同じ。ていうかStrConvは内部でLCMapStringを使ってる。

VB.NETから使うメリットは全くないが、
C#ならStrConvの為にMicrosoft.VisualBasicをusingする必要が無くなるかも
909デフォルトの名無しさん:2011/12/23(金) 00:00:30.28
ビルドしたときに、Debugフォルダしか作成されず、Releaseフォルダが作成されません。

原因がわかりません。設定方法がまずいんでしょうか?
910ビートたけし:2011/12/23(金) 09:29:12.09
>>909
releaseフォルダを指定していない 
911デフォルトの名無しさん:2011/12/23(金) 13:25:58.14
リリースビルドをちゃんとしてるのに生成されないんです
912デフォルトの名無しさん:2011/12/23(金) 13:37:51.03
Releaseの構成が、Releaseフォルダを作成する設定になっているとは限らない。
913デフォルトの名無しさん:2011/12/23(金) 15:35:18.64
プロジェクトごとに毎回設定する必要があるのですかね?
試してみたら、毎回設定しないといけないようみたいなんですけど。
914デフォルトの名無しさん:2011/12/24(土) 20:07:15.66
つかそれVisual Studioの設定の話だし
VSのスレ行って聞けよ
915デフォルトの名無しさん:2011/12/25(日) 00:13:38.80
dtは配列変数です。
このとき、下に書いてある違いは何でしょうか?
添え字をつける、つけないにより何が変わるのでしょうか?

dt = New Integer(2){10,20,30}

dt = New Integer( ){10,20,30}
916デフォルトの名無しさん:2011/12/25(日) 00:28:39.00
何も変わらない
変更時の手間が増えるだけだから付けなくていい
917デフォルトの名無しさん:2011/12/25(日) 04:33:20.57
約数と因数は同じらしいけどなんでわざわざ2つの言葉を用意したん?
918デフォルトの名無しさん:2011/12/25(日) 08:06:59.65
http://nyannyan3.minidns.net/up/2011_12_25a-DragonNight.png
C:\tempのとこお
実行時に
C:\2ch
に書き換えて
アプリを終了して
次回起動した時に
C:\2chが表示されているようにするにはどのファイルにどんなコードで保存して次回どのように読み込めば
919デフォルトの名無しさん:2011/12/25(日) 09:34:47.93
>>918
TextBoxのプロパティ - ApplicationSettings - PropertyBinding で
Textにアプリケーション設定をバインディングしておくのが一番楽。
920デフォルトの名無しさん:2011/12/25(日) 10:07:54.13
Bindの英単語意味は中学でならわなかった
921デフォルトの名無しさん:2011/12/25(日) 10:16:43.53
PropertyBindingで保存されるタイミングは
TextChange時か
FomrClose時か

922デフォルトの名無しさん:2011/12/25(日) 12:32:22.45
TextChangedの方だな。そこら辺の処理はコントロール単位で完結してる。
同じ設定にバインドしたTextBoxを二つ並べれば解り易いな。
923デフォルトの名無しさん:2011/12/25(日) 13:10:38.76
このPropatybindingってテキストボックスの規定値としてつかえないかな?

Accessだとプロパティで持ってるから、便利でForm load時に規定値を変更したりするケースでは便利なのだが
924デフォルトの名無しさん:2011/12/25(日) 13:17:52.95
propaty....

普通に出来ますよ。
使えないかな、とか書く前に試してから質問したらいいののに。
俺には精神分析の対象としか
925デフォルトの名無しさん:2011/12/25(日) 13:41:59.99
VB.NETからローカルデータベースをつくったけど
どのような接続文字列を書けばいいのかしら
926デフォルトの名無しさん:2011/12/25(日) 13:46:37.75
冬休みオソロシス…
927デフォルトの名無しさん:2011/12/25(日) 13:56:01.35
〜ConnectionStringBuilderってあるから、それ使っとけ。
928デフォルトの名無しさん:2011/12/25(日) 14:43:53.18
なんかまだつなげれられないネットもさがしてるのに
http://homepage2.nifty.com/inform/vbdb/
929デフォルトの名無しさん:2011/12/25(日) 15:37:56.06
SE出版の独習VB2008は神!
930デフォルトの名無しさん:2011/12/25(日) 16:12:26.81
エラーがでちゃう

Dim Conn As SqlConnection

'Data Source=|DataDirectory|\Database1.sdf
Conn = New SqlConnection("Initial Catalog=Config;Data Source=C:\001\Database1.sdf;Integrated Security=SSPI;")

Dim myCmd As SqlCommand
myCmd = Conn.CreateCommand
myCmd.CommandText = "SELECT * FROM Config"

'Open the connection.
Conn.Open()
931デフォルトの名無しさん:2011/12/25(日) 17:01:47.44
Linq使えば
932デフォルトの名無しさん:2011/12/25(日) 19:59:47.53
>>625
ローカルって事はテーブルは既にあるんだからそのテーブルに対してLINQでアクセスすればいい
おれ自身10年以上前にVB4で組んだのを最後に1ヶ月ほど前から超久々にVB.NET使い始めた初心者だが
ググル先生だけでもそのぐらいは調べられるぞ

Dim L = From i in DT Where i("Column1")="ggrks"
For A as Integer = 0 to L.Count - 1
MsgBox(L(A)("Column2"))
Next A

これでDTというDataTableからColumn1の値がggrksのレコードを抽出して
MsgBoxで抽出したレコードの中のColumn2の値を表示してくれる
933デフォルトの名無しさん:2011/12/25(日) 21:11:43.39
dim構文が良く分かるhpくれ…
初心者だ…

全くと言っていいほど仕組みが分からん
かく意味あるのか…
934932:2011/12/25(日) 21:12:21.62
×625
>>925
すまん
935932:2011/12/25(日) 21:16:58.58
936デフォルトの名無しさん:2011/12/25(日) 21:28:47.08
初心者だって威張る奴は何教えても聞きゃしないから
937デフォルトの名無しさん:2011/12/25(日) 21:44:42.53
dim private
ディムとプリベイトはおなじなのかね
938デフォルトの名無しさん:2011/12/25(日) 21:58:22.03
なんだ消防か
939デフォルトの名無しさん:2011/12/25(日) 22:25:10.00
Dim Cmd As SqlCommand
のCmdを使い終わったとすると
Cmd.Dispose()
を書かなくても良いんだろうか
940デフォルトの名無しさん:2011/12/25(日) 22:29:44.69
Disposeは必要でも普通に書いちゃいけません
Usingを使ってください
941デフォルトの名無しさん:2011/12/25(日) 22:41:56.15
それもどうなの。
いつでもローカルのブロック内の寿命でよいとは限らないよ。
何いってんの。
942デフォルトの名無しさん:2011/12/25(日) 23:01:24.00
VB2008で、PostgreSQLにADO.NETで接続は可能ですか?
943デフォルトの名無しさん:2011/12/25(日) 23:08:56.91
>>942
可能
944デフォルトの名無しさん:2011/12/25(日) 23:32:22.08
ありがとうございます。
近々、PostgreSQL始めるんですが、リファレンスブックに、アクセスやオラクルへの接続文は載ってましたが、PostgreSQLがなかったので、心配していたのです。
945デフォルトの名無しさん:2011/12/26(月) 06:10:03.92
ゆーじんぐつかうといれこになってめんてなんすせいがさがっちゃうぢゃん
Using Conn As SqlConnection
Using Cmd As SqlCommand
Using なんたら
Using 2ch
End Using
End Using
End Using
End Using
946デフォルトの名無しさん:2011/12/26(月) 07:32:02.61
ああやっぱり馬鹿か
using xxx as xxx,yyy as yyy,…
end using
で済むのに
947デフォルトの名無しさん:2011/12/26(月) 08:28:20.10
using使う奴はクビ
948デフォルトの名無しさん:2011/12/26(月) 08:44:33.73
バッファ内のバイナリ値を16進数表現の文字列に変換する便利な機能ってあるでしょうか?
949デフォルトの名無しさん:2011/12/26(月) 09:22:55.00
BitConverter.ToString
950デフォルトの名無しさん:2011/12/26(月) 09:38:52.11
>>925 自分の場合のテンプレートは以下の通り

接続準備
'カレントフォルダのbase.accdbに接続する
Dim cn As OleDb.OleDbConnection = New OleDb.OleDbConnection( _
"provider=Microsoft.ACE.OLEDB.12.0;" _
& "Data Source=" & apppath & "\base.accdb;")
Dim SQLCm As OleDb.OleDbCommand = cn.CreateCommand
テーブル接続
'テーブルの接続および一時データ格納用のデータレコードの準備
dAdp = New OleDb.OleDbDataAdapter("SELECT * FROM " & accdbtable & " WHERE patternid =" & selectptn, cn)
dAdp.Fill(dSet, "a_settings")
dTblasset = dSet.Tables("a_settings")
データテーブルへデータを入れた後に・・・・SQLで流し込む
'インサート用SQL文組み立てと実行
Dim SQL As String = ""
cn.Open()
For Each Row As DataRow In dtbl.Rows
SQL = "INSERT INTO " & accdbrepay & "(patternid, assetid, repayday, repaycost, nendo, assettype) VALUES ("
SQL &= Row("patternid") & ", " 'パターンID
SQL &= "'" & Row("assetid") & "', " '固定資産GUID
SQL &= "'" & Row("repayday") & "', " '減価償却年月日
SQL &= "'" & Row("repaycost") & "', " '減価償却費
SQL &= "'" & Row("nendo") & "', " '年度
SQL &= Row("assettype") '固定資産タイプ
SQL &= ")"
'データベースへ反映
SQLCm.CommandText = SQL
SQLCm.ExecuteNonQuery()
Next
SQL = Nothing
951デフォルトの名無しさん:2011/12/26(月) 09:41:08.49
>>924
いろいろ試してみてたのですが、ボキャブラリがなくてぐぐっても探し当てられませんでした。

大変有難うございます。
これで、作成パターン毎にプリセットを変更して規定値を書き換える仕組みを作れます。
952デフォルトの名無しさん:2011/12/26(月) 09:47:19.92
ローカルデータベースってなんだべ?
.netがDBを持ってるのかい?
953デフォルトの名無しさん:2011/12/26(月) 10:20:45.83
>>949
ありがとう
954デフォルトの名無しさん:2011/12/26(月) 10:23:01.18
>>950
どこの住基システムか知らんが
ひどい点プレだな

パスワードはJUKI/JUKIとか、そーいう風な運用してるところだろ
955デフォルトの名無しさん:2011/12/26(月) 11:13:09.33
>>954
何がどう酷いのか良かったらコメントお願いできますか?
956デフォルトの名無しさん:2011/12/26(月) 11:15:38.19
まず超初歩のSQLインジェクション
957デフォルトの名無しさん:2011/12/26(月) 11:27:14.55
>>956
自分の場合、ローカルの単体アプリとして利用しているケースでも、SQLインジェクション対策
は必要となりますか?

ウェブサービス等では、必要だと考えていますが。

あ、ちなみにこのテンプレはとある計算機のプログラムです。計算して、計算結果をCSVとして
吐き出すことを目的としてます。
958デフォルトの名無しさん:2011/12/26(月) 11:40:07.45
>>957
まあ必要ないならいいけど
でもね
・SQLを毎回文字列で組み立ててたらSQLが毎回コンパイルされて遅い
・そのプログラムをウェブサービス化するかもしれない
等考えるとほんのひとてまを惜しむのはどうかと思う
書き捨て一回実行するだけ
とかならいいけど
959デフォルトの名無しさん:2011/12/26(月) 11:51:28.30
>>958
なるほど。

人の質問に乗る形で問いてしまいましたが、参考になりました。ありがとうございます。

SQL実行のスピードに関しては確かに現在でも気になってはいます。
減価償却費の計算や借入金償還の計算など、1件240レコード程度を50件程度= 12000件
個数が多くなればそれだけ遅くなる。

SQL組み立てが一番早いと思っていました。
Accessの場合、DAOでフィールドを予め指定で固定化させた上で直接流し込んでいたので、
それほどでもなかったのですが、SQL組み立て以上に早いテーブルへのデータINSERT方法があ
ったりするのでしょうか?
960デフォルトの名無しさん:2011/12/26(月) 13:08:26.00
>>959
パラメータクエリでググってくれ
961デフォルトの名無しさん:2011/12/26(月) 13:17:13.08
>>957
> 自分の場合、ローカルの単体アプリとして利用しているケースでも、SQLインジェクション対策
> は必要となりますか?

悪意の有無じゃなくて
バグを放置していることに気がついてないのか
962デフォルトの名無しさん:2011/12/26(月) 13:20:54.96
個人がローカルで使うシステムならまだしも
そんな糞コードに役所がカネ払ってるとか

姉歯設計よりひどい
「インジェクション対策」なんて仕様書に明記されなくても
職業プログラマなら、勝手にやっとくのが当たり前

そこが素人との違いな
963デフォルトの名無しさん:2011/12/26(月) 13:39:45.35
>>962
役所というのは意味がわからないのですが?

第一、自分は職業プログラマじゃありませんし、何か誰かと勘違いしてませんか?

>>960
ちょっと探してみます。
964デフォルトの名無しさん:2011/12/26(月) 13:49:03.96
ああ、どっかの会社の固定資産台帳の話かい
それなら、SQL文を繋げてやればいいじゃん

糞プログラマを雇ってる会社が自業自得の結果になるだけだし
965デフォルトの名無しさん:2011/12/26(月) 13:50:47.97
おまいらカリカリしすぎ
風俗でもいってすっきりしてこい
966デフォルトの名無しさん:2011/12/26(月) 14:01:31.83
>>964
先程から、勝手な思い込みをし、そして、勝手な解釈をし、挙句には糞プログラマ
と勝手に吠えているあなたは、何様のつもりなのかお聞かせ願えますか?

それともここでは質問者を罵るのがローカルルールってことで?
967デフォルトの名無しさん:2011/12/26(月) 14:05:04.97
>>965
まぁ、おまえら っていうか、>>964=>>954の一人相撲でしょ?

住基システムとか文脈にない事を話し初めて、最後には糞でしょw
968デフォルトの名無しさん:2011/12/26(月) 15:21:32.40
あんなのを点プレにしてるのなら糞だろ
似たようなコードが書かれてて、辛うじて動いているシステムが目に浮かぶ
969デフォルトの名無しさん:2011/12/26(月) 16:43:46.73
うちはSQLインジェクションって言葉を知ってるのいなさそうw
なので余裕でSQL文を結合しまくり
うぇ
970デフォルトの名無しさん:2011/12/26(月) 17:08:39.95
SQL文を結合するほうが、考えないといけないことが増える
’(アポストロフィ)が入ったときの制御とか

パラメータにしてエンジンに丸投げがラクでいい
971デフォルトの名無しさん:2011/12/26(月) 20:16:28.44
お前らわかったような事言ってるが、テーブル名をパラメータ化する方法あんのか?
972デフォルトの名無しさん:2011/12/26(月) 20:26:28.74
テーブル名はアレだが IN (@p1,@p2,@p3・・・) は、もっとスマートにパラメータ化したいね
973デフォルトの名無しさん:2011/12/26(月) 20:44:38.78
Declare Function GetPixel Lib "gdi32" (ByVal hdc As IntPtr, ByVal X As Int32, ByVal Y As Int32) As Int32
でのIntの戻り値を効率よくcolor構造体に変換かもしくはRGBそれぞれの値に変換するのはどうやればいいのでしょうか?
本当にど初心者な質問だと思うのですがよろしくお願いします
974デフォルトの名無しさん:2011/12/26(月) 20:51:49.54
ビット演算
ColorTranslator.FromWin32
975デフォルトの名無しさん:2011/12/26(月) 21:14:06.68
32bitイメージを256色pngで出力する方法ある?
976デフォルトの名無しさん:2011/12/26(月) 21:45:02.65
ACCESSのパラメータは今も@じゃなく?をつかうん?
977:2011/12/26(月) 22:26:38.57
自分でもよくまだ理解できていない点があります。

以下のようなフローの時には、同時実行違反が発生するのはなぜでしょうか?

textbox0.textに手動で値を入力後・・・
(現在テキストボックスにあるデータを一旦保存する)

Me.Validate()
Me.okekeBindingSource.EndEdit()
Me.okekeTableAdapter.Update(Me.Baseset)

(ここでウィザードのようなウィンドウを呼び出し値をもらう)

me.textbox1.text = ウィザードからの値

(再度保存する)
Me.Validate()
Me.okekeBindingSource.EndEdit()
Me.okekeTableAdapter.Update(Me.Baseset)

すると、UpdateCommand云々で同時実行違反と怒られました。
なぜなのでしょうか?

ウィザードにはキャンセルのためのロジックがあるので、キャンセルされ
た場合には、再度保存という手順を行わないようになっています。
978デフォルトの名無しさん:2011/12/26(月) 22:28:34.42
>>975
WPFのPngBitmapDecoder
979デフォルトの名無しさん:2011/12/26(月) 22:38:55.84
>>978
うーんwpfか…
ともあれありがと
980デフォルトの名無しさん:2011/12/27(火) 17:42:28.14
行き詰りました・・・

文字列 "F0FF0F" から byte配列 {240, 255, 15} を取得したいのですが
上手く取得する方法を教えてください。
BitConverter のメソッドで可能?
981デフォルトの名無しさん:2011/12/27(火) 18:42:24.34
細かい要件がわからんので適当に
Dim str = "F0FF0FF"
Dim bytes = New Byte(CInt(Math.Floor(str.Length / 2 + 0.5)) - 1) {}
For i As Integer = 0 To bytes.Length - 1
 Dim len = 2
  If (str.Length < i * 2 + len) Then
   len = 1
  End If
  bytes(i) = Convert.ToByte(str.Substring(i * 2, len), 16)
Next
982デフォルトの名無しさん:2011/12/27(火) 20:03:26.95
>>981
目的のことができました。
ありがとうございます!
983デフォルトの名無しさん:2011/12/27(火) 23:41:19.24
textboxのスクロールバーの色やスタイルを変えることってできますか?

また、
TextBox内のデータをタッチしてスクロールする方法
http://code.msdn.microsoft.com/WPF-howto-2bf0426c/
に書かれてることをvb.netのtextboxでやりたいんですが、わかる方教えてください。
お願いします。。
984デフォルトの名無しさん:2011/12/28(水) 00:10:08.85
悪いこと言わないからWinFormsでそういうのは諦めろ
地獄だから
985デフォルトの名無しさん:2011/12/28(水) 00:53:15.95
まあ、スクロールバーなんか自分で実装してもそれほど手間とも思えんけど...
ドラッグしてスクロールも。
986デフォルトの名無しさん:2011/12/28(水) 09:19:00.06
>>983
SetScrollInfoとかAPI使うのが簡単じゃない?
WPFコントロールをWinFormsに配置云々は知らない
987デフォルトの名無しさん:2011/12/28(水) 09:46:39.37
>WPFコントロールをWinFormsに配置
ElementHostでできるよ
重いから、やるんなら一画面丸ごとくらいの単位の方がいいけど
988983:2011/12/28(水) 16:54:40.19
ありがとうございます。
やはり、スクロールバーなしでtextboxの中をマウスでスクロール?的な事は不可能ですかね〜〜
989デフォルトの名無しさん:2011/12/28(水) 19:23:36.57
PDFみたいに掴みたいの?
990デフォルトの名無しさん:2011/12/28(水) 22:11:23.50
Using Conn As System.Data.SqlServerCe.SqlCeConnection
End Using
どこがまちがってる?
991デフォルトの名無しさん:2011/12/28(水) 22:25:53.39
お前の態度が....
無い物はDisposeしようがないだろ
992デフォルトの名無しさん:2011/12/28(水) 22:29:16.50
Usingのつかかたがよーわからん
993デフォルトの名無しさん:2011/12/28(水) 22:32:59.87
Dim だとエラーでないにょ
Dim Conn As System.Data.SqlServerCe.SqlCeConnection
994デフォルトの名無しさん:2011/12/28(水) 22:49:53.11
ローディング中に画像を出したいんだけど、どうすりゃいいの?
995デフォルトの名無しさん:2011/12/28(水) 22:53:36.40
>>994
BackgroundWorker を使いなさい
996デフォルトの名無しさん:2011/12/28(水) 23:35:48.07
データーリーダーのHasRowsがつかえないデーターベースのばあいに
Select 〜 from 〜 Where 〜 = 〜
で行が取得されたかされないかをしらべるにはどーしゅればぁ
997デフォルトの名無しさん:2011/12/28(水) 23:43:32.36
Readしてみればいいんじゃない
998デフォルトの名無しさん:2011/12/28(水) 23:44:32.57
立てた
テンプレはテキトーに頼む
http://toro.2ch.net/test/read.cgi/tech/1325083428/
999983:2011/12/29(木) 01:06:01.63
>>989
そうです〜〜
できませんよね?
1000デフォルトの名無しさん:2011/12/29(木) 04:42:44.18
>998
おつ

VB.NET質問スレ(Part38)
http://toro.2ch.net/test/read.cgi/tech/1325083428/
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。