VB.NET Tips ComboboxのItemsリストを検索し、該当するIndexを取得する
VB.NET Tips ローカルコンピュータのIPアドレスを取得
一つ前のエントリーで、ローカルコンピュータ名の取得を紹介しました。
このローカルコンピュータ名を使用から、ローカルコンピュータのIPアドレスを取得します。
IPアドレス取得も、ローカルコンピュータ名取得と同じ、.NET Framework クラス ライブラリのSystem.Net 名前空間のDns クラスを使用します。
簡単にアドレスが取得できます。
Dim HostIP() As System.Net.IPAddress Dim HostIPAdress As String HostIP= System.Net.Dns.Resolve(System.Net.Dns.GetHostName()).AddressList HostIPAdress = HostIP(HostIP.GetLowerBound(0)).ToString MessageBox.Show("このPCのIPアドレスは " & HostIPAdress & " です。")
VB.NET Tips ローカルコンピュータ名を取得
Visual Basic 2008 にてローカルコンピュータ名を取得して、ユーザの使用しているコンピュータ名を明示してあげると親切な場合ってありますよね。
そんなときに、簡単にローカルコンピュータ名を取得できます。
.NET Framework クラス ライブラリのSystem.Net 名前空間のDns クラスを使用します。
このクラスは、単純なドメイン名解決機能を提供してくれます。
Dim HostName As String 'ローカルコンピュータ名を取得 HostName = System.Net.Dns.GetHostName() '取得したコンピュータ名を表示 MessageBox.Show("このPCのコンピュータ名は " & HostName & " です。")
VB.NET Tips FlexGrid.NETを連結(バウンド)モードで使用するときのパフォーマンスの改善
GrapeCity社のFlexGrid.NETの連結(バウンド)モードを使用して大量にデータを表示するとき、5000件位のデータ連結だと、SetDataBinding時に処理時間が約2.3秒程度かかりました。
50000件処理するとき、単純計算で23秒。こうなると、使えません。
パフォーマンスを改善する策はないかと探したところ、
VB.NET Tips FlexGrid.NETにBindしたDataTableの任意行にDataRowを追加
FlexGrid.NETにDataBindされたDataTable内の任意行にDataRow(新規行)を追加する際、
「同時実行違反:UpdateCommand によって、処理予定の1レコードのうち0件が処理されました。」
このエラーが出て、新規行を追加できませんでした。
同時実行違反エラーというのが、DataAdapterに設定したUpdateCommandのWHERE句に指定した値で行が参照できないときなどに出力されるエラーです。
このときのコードが下記のものです。
VB.NET Tips コードエディタでカット&ペーストの便利な機能
VB.NETでプログラミングするとき、必須なのがコードエディタですね。
一般的なテキストエディタでテキストを一行コピーするとき、行を選択して、コピーCTRL+Cで行います。
ですが、VB.NETのコードエディタでは、カーソルがある行で、コピーCTRL+Cを行うだけで、一行コピーが可能です。行選択をしなくっていいってのが、とてつもなく便利です。
同じように、ペーストCTRL+V、切り取りCTRL+Xも行に、カーソルがありさえすれば、機能してくれます。
VB.NET Tips DataSetに追加したDataTableを解放
VB.NETでDataSetにDataTableを追加して、コントロールのDataSourceに登録して表示。
この処理を行った後、内容をすべてリロードするときにDataSetに登録したDataTableにそのままリロードをかけ、上書きすると処理速度がぐっと落ちます。
この際、DataSet.Tables プロパティを使用して、DataSet内に該当テーブルが存在するか確認し、DataSet内の該当DataTableをクリアーしてから再登録すると速度も落ちずスムーズに登録できます。
MSDN .NET Framework クラス ライブラリ DataSet.Tables プロパティ
続きを読む…
SQL Server Compact 3.5 でIDENTITY値を再設定するには?
SQL Server 2008 Expressなどの、Transact-SQLでは、SQL Server のデータベース コンソール コマンドとして機能するDBCCステートメントが用意されていて、この機能を使用すれば、IDENTITY値の再設定が可能でした。
しかし、SQL Server Compact 3.5 ではDBCCはサポートされていません。
テーブルを一旦、空にして、IDENTITY値を初期値に戻したい時などに必要でした。
VB.NET Tips CSVファイルの総行数を取得する
CSVファイルから、インポート処理する際などに、事前にレコードの総数を提示しておきたかったり、プログレスバーを使用して、処理の進行を表示したいときなどに、CSVファイルのレコード総数(総行数)が必要になります。
ですが、StreamReaderなどで読み込んでもCountなどは使えないため、一発取得の方法がありませんので、読み込んだファイルの行数を1から数える必要があります。