2011年1月23日日曜日

.NET ComboBox オートコンプリート

オートコンプリート機能の実装

プログラムでコンボボックスに値を追加して表示する場合
コンボボックスのプロパティの設定値
AutoCompleteSourece : ListItems

AutoCompleteModeは下記のNone以外から選択

None オートコンプリート機能を無効にする。
Suggest 入力された文字に近い候補を探してドロップダウンリストを作り表示します
Append 入力された文字に近い候補を1つ探して、テキストエリアに表示します。
SuggestAppend SuggestとAppendの両方の機能を持ちます。

詳しくはHIROs.NET内
オートコンプリート機能を実装するを参照

2010年12月15日水曜日

.NET DataTableから対象行を抽出する

DataTableから対象行を抽出する。

DataTable.Select メソッド (String)

フィルタ基準と一致するすべての DataRow オブジェクトを主キーの順に (主キーがない場合は追加された順に) 配列として取得します。

'宣言

Public Function Select ( _
filterExpression As String _
) As DataRow()
'使用

Dim instance As DataTable
Dim filterExpression As String
Dim returnValue As DataRow()

returnValue = instance.Select(filterExpression)

パラメータ
filterExpression
型 : System.String
行にフィルタをかけるために使用する基準。

戻り値
型 : System.Data.DataRow()
DataRow オブジェクトの配列。

解説
引数 filterExpression を作成するには、フィルタを作成するときに DataColumn クラスの Expression プロパティの値に適用する規則と同じ規則を使用します。

例
フィルタ式を使用して DataRow オブジェクトの配列を返す例を次に示します。

Private Sub GetRowsByFilter()

Dim table As DataTable = DataSet1.Tables("Orders")

' Presuming the DataTable has a column named Date.
Dim expression As String
expression = "Date > #1/1/00#"
Dim foundRows() As DataRow

' Use the Select method to find all rows matching the filter.
foundRows = table.Select(expression)

Dim i As Integer
' Print column 0 of each returned row.
For i = 0 to foundRows.GetUpperBound(0)
Console.WriteLine(foundRows(i)(0))
Next i
End Sub

詳しくはMSDNライブラリの
DataTable.Select メソッド (String)を参照

2010年11月11日木曜日

.NET 小数部切捨てとか

Math.Floor メソッド

'宣言
Public Shared Function Floor ( _
d As Double _
) As Double
'使用

Dim d As Double
Dim returnValue As Double

returnValue = Math.Floor(d)

パラメータ
d
型 : System.Double
倍精度浮動小数点数。

戻り値
型 : System.Double
d 以下の最大の整数。d が NaN、NegativeInfinity、PositiveInfinity のいずれかに等しい場合はその値が返されます。
解説

このメソッドの動作は IEEE 規格 754、セクション 4 に従います。このような丸めは、負の無限大への丸めと呼ばれることがあります。つまり、d が正の場合は、小数部が切り捨てられます。d が負の場合は、小数部が存在すると次に小さな整数に丸められます。このメソッドの演算は、正の無限大への丸めをサポートしている Ceiling メソッドとは異なります。

例
Math.Floor(Double) メソッドについて説明し、このメソッドを Ceiling(Double) メソッドと比較する例を次に示します。

Dim values() As Double = {7.03, 7.64, 0.12, -0.12, -7.1, -7.6}
Console.WriteLine(" Value Ceiling Floor")
Console.WriteLine()
For Each value As Double In values
Console.WriteLine("{0,7} {1,16} {2,14}", _
value, Math.Ceiling(value), Math.Floor(value))
Next
' The example displays the following output to the console:
' Value    Ceiling    Floor
'
' 7.03     8      7
' 7.64     8      7
' 0.12     1      0
' -0.12       0       -1
' -7.1     -7       -8
' -7.6     -7      -8

詳しくは、MSDNライブラリの
Math.Floor メソッドを参照

.NET 指定した文字セットでの文字列のバイト数を調べる

Encoding.GetByteCount メソッド (String)
派生クラスでオーバーライドされた場合、指定した String に含まれる文字をエンコードすることによって生成されるバイト数を計算します。

'宣言

Public Overridable Function GetByteCount ( _
s As String _
) As Integer
'使用

Dim instance As Encoding
Dim s As String
Dim returnValue As Integer

returnValue = instance.GetByteCount(s)

パラメータs
型 : System.String
エンコード対象の文字のセットを格納している String。

戻り値
型 : System.Int32
指定した文字をエンコードすることによって生成されるバイト数。

使用例
value = System.Text.Encoding.GetEncoding("shift-jis").GetByteCount(str1)

ここではGetEncodingで文字セットの名前を指定し
その文字セットでstr1をエンコードした時のバイト数をGetByteCountで取得している。

詳しくは、MSDNライブラリの
Encoding.GetByteCount メソッドとEncoding.GetEncoding メソッドを参照

.NET 文字列の一部が一致しているか調べる

文字列の一部が一致しているか調べる

String.IndexOfメソッドは、その文字列内に指定した文字列と一致する部分があるかを探し、見つかったら、最初に見つかった位置を0以上の整数で返します。見つからなければ、-1を返します。
String.LastIndexOfメソッドは、最後に見つかる位置を返します。

[VB.NET]

Dim s1 As String = "あいうえおあいうえお"

Console.WriteLine(s1.IndexOf("あい")) '結果は"0"
Console.WriteLine(s1.LastIndexOf("あい")) '結果は"5"
Console.WriteLine(s1.IndexOf("アイ")) '結果は"-1"
Console.WriteLine(s1.IndexOf("")) '結果は"0"
Console.WriteLine(s1.LastIndexOf("")) '結果は"9"


DOBON.NETの
2つの文字列が等しいかを調べるページ内から抜粋

2010年11月10日水曜日

.NET 1次元配列を指定したオブジェクトで検索し、その中で最も小さいインデックス番号を返す。

Array.IndexOf ジェネリック メソッド (T[], T)

Array 全体を対象に指定したオブジェクトを検索し、インデックス番号の最も小さい要素のインデックスを返します。

戻り値
array 全体を対象に value を検索し、見つかった場合は、インデックス番号の最も小さい要素の 0 から始まるインデックス番号。それ以外の場合は –1。

例外

例外の種類
ArgumentNullException

条件
array が null 参照 (Visual Basic では Nothing) です。

使用例

Imports System

Public Class Example

Public Shared Sub Main()

Dim dinosaurs() As String = { "Tyrannosaurus", _
"Amargasaurus", _
"Mamenchisaurus", _
"Brachiosaurus", _
"Deinonychus", _
"Tyrannosaurus", _
"Compsognathus" }

Console.WriteLine()
For Each dinosaur As String In dinosaurs
Console.WriteLine(dinosaur)
Next

Console.WriteLine(vbLf & _
"Array.IndexOf(dinosaurs, ""Tyrannosaurus""): {0}", _
Array.IndexOf(dinosaurs, "Tyrannosaurus"))

Console.WriteLine(vbLf & _
"Array.IndexOf(dinosaurs, ""Tyrannosaurus"", 3): {0}", _
Array.IndexOf(dinosaurs, "Tyrannosaurus", 3))

Console.WriteLine(vbLf & _
"Array.IndexOf(dinosaurs, ""Tyrannosaurus"", 2, 2): {0}", _
Array.IndexOf(dinosaurs, "Tyrannosaurus", 2, 2))

End Sub
End Class

' This code example produces the following output:
'
'Tyrannosaurus
'Amargasaurus
'Mamenchisaurus
'Brachiosaurus
'Deinonychus
'Tyrannosaurus
'Compsognathus
'
'Array.IndexOf(dinosaurs, "Tyrannosaurus"): 0
'
'Array.IndexOf(dinosaurs, "Tyrannosaurus", 3): 5
'
'Array.IndexOf(dinosaurs, "Tyrannosaurus", 2, 2): -1


詳しくは、MSDNライブラリの
Array.IndexOf ジェネリック メソッドを参照

2010年11月4日木曜日

Oracle データベースへの接続・再接続 OS 認証で SYSDBA に接続

データベースへの接続・再接続

CONNECT はデータベースにログイン/ログオンを行なうためのコマンド
短縮形は CONN

OS 認証で SYSDBA に接続する例

SQL> connect / as sysdba
接続されました。
SQL>


詳しくは、
SHIFT the Oracle 内の下記記事参照の事
データベースへの接続・再接続