[.NET] "旧形式です" という警告

.NET Framework 1.1 から .NET Framework 2.0 へ移行し、古いソースを移植しようとしたときにたびたび出る「旧形式です」。これを見るたび、勝手に変えるなよな~、と思ってしまいますが、まぁそれはそれとして変更していくしかないですね。

SqlCommandのコレ
.Parameters.Add
 ↓
.Parameters.AddWithValue

Web.configから値を引っ張ってくるときにとくにハマる

ConfigurationSettings.AppSettings(" key ")
 ↓
ConfigurationManager.AppSettings(" key ")

「Splitメソッド」との闘い

StringクラスにあるSplitメソッド。
.NET Framework 2.0から追加されたのだが、これが便利すぎる。
複数検索機能拾を作るときには必需品なのだが、この第2パラメータが超絶便利。

None 空白を含める
RemoveEmptyEntries 空白を含めない

' 文字列
Dim keywords As String
Dim words() As String
' 分割
words = keywords.Split(splitKey, StringSplitOptions.RemoveEmptyEntries)

はじめは、このパラメータを知らなくて空白を除去しようと苦労した。

GridViewのセルの値を取り出す

GridViewの任意のセルから値を引き出したいとき。
たまに忘れていることがある。

GridView2.Rows( 縦番号 ).Cells( 横番号 ).Text

「.ToStrin」ではなく「.Text」。

「GridViewの選択ボタン」との闘い2

テンプレート列にボタンを設置して値を拾おうと考えたのだが、SelectedIndexが「-1」しか返ってこない。
どうも内部的には「選択」されているわけではない模様。

いろいろ調べると、「選択」させるのはあくまで「SelectedIndexChanged」であり、Indexはこのイベントが起こったときにしか取得できない(と思う)。

これを解決するために一番手っ取り早い方法は、テンプレート列に配置してあるボタンのCommandNameを「Select」にしてしまう。こうすると、Selectボタンのイベントを拾うことができ、Indexも取得できる、ということ。

ただ、これをすると今度は列が選択状態になってしまう。
これは、Indexを取得した後、SelectedIndexを「-1」にしてイベントを終えることで対処できる。
対処できるが、ほんとにこれでいいのか…!?

配列の型変換

関数から戻り値を受け取るときに、それが配列だったりすると型変換を変える必要がある。
初歩的な部分であるけれど、一瞬迷った。

NG
Dim key() As String
key = CStr( procedure)

OK
Dim key() As String
key = CType( procedure , String())


まぁ、CStr()なんて使わなきゃいいのかもしれないけど。

「テンプレート列」との闘い

テンプレート列にテキストボックスを配置し、その値を取り出すには以下のようにする。
この場合は、テキストボックスの値を拾う。戻りは文字列型。

... = CType(GridView1.FooterRow.FindControl(" ID "), TextBox).Text

「GridViewの選択ボタン」との戦い

GridViewにボタンをつけて、選択させるということもよくある。
そこで選択された行に対して、キーを拾うと思うのだが、これがDataGridとは多少変わっていた。


DataGrid
e.Item.Cells(0).Text

GridVIew
GridView1.Rows(CInt(e.CommandArgument)).Cells(0).Text


他にやり方があるのかもしれないけど、とりあえずこれで対処。

「GridViewのフッターに合計値」との闘い

かなりよくある要望。

こちらのサイトにて万事解決。
http://akiokasai.qsh.eu/samples/060713-1.aspx
合計だけではなく、平均も出せます。

GridViewの「showfooter」プロパティを"true"にしておかないと、表示されません。
……当たり前かもしれませんが。

「Officeの個人情報」との闘い

パソコン君の親友、Microsoft Office。
文章を書いたり、表計算をしたり、大忙しです。
でも、このOfficeファイルには、個人情報がたっぷりと保存される仕様になっています。ファイルを右クリックして、プロパティを見ると……。

必要な人しかありがたくない機能をカットするツールがありました。


こういう部分から、流出したときに足がついちゃったりするのよね。

「SQL Serverの予約語」との闘い

予約語一覧(SQL Server Compact Edition)
インポートしたテーブルに「user」っていうのがあってはまった。

こんなにたくさんあったのね。

Management Studioでテーブルを作る時点では、警告が出ない。
でも、取り出そうとするとエラーが出る(SQL文が間違っています、など)。

[Adobe Reader] Updater5 というフォルダは何?

マイドキュメントに Updater5 というフォルダがあることに気づく。
調べてみると、どうやら Adobe Reader 8.0 がアップデート用の一時ファイル置き場として使っているとのこと。


ファイルの保存先を変更すれば、自動的に作られる (マイドキュメントに) ことはなくなるようだ。

Cache メンバ

' キャッシュに値を入れる
Cache.Insert("1", "テスト")
Cache("1") = "テスト1"

' キャッシュの取り出し
Cache.Item("1")
Cache.Get("1")
xxxx = Cache("1")

' キャッシュの数(数値型で戻す
Cache.Count

' キャッシュの削除
Cache.Remove("1")

VB.NETで乱数を発生させる


Dim rnd As New Random(1000)
' 1から3までの乱数(4は含まれないことに注意する)
Dim iRnd As Integer = rnd.Next(1, 4)