Skip to content

20251118mon

Published: at 15:00

20251118mon

1. C#のデータ読込処理について(ExcecuteReader, DataAdapter, ExecuteScalar)

①1行ずつ読み取って書き込むとかなら DataReader()

SqlReader reader = command.ExecuteReader();
while(reader.Read())
{
}

②DataTableにいれるなら、DataAdapter.Fill

SqlDataAdapter da = new SqlDataAdapter(command);
DataTable dt = new DataTable()
da.Fill(dt);

③結果が一行と分かっているもの select count(*) とかなら ExecuteScalar()

2. WindowsFormのスレッド処理について

BeginInvokeは非同期でUIスレッドに処理を委譲する。呼び出し元はブロックされない。

Invokeは同期でUIスレッドに処理を委譲する。呼び出し元はブロックされる。

どちらにしても、処理はUIスレッドで行われる。

3. 変数宣言,関数宣言について

値型(string, int, bool, DateTime, enum などなど)は外と中どちらで宣言しても速度はほぼ変わらない。

foreach (var row in dt.Rows.Count) {
string ファイル名 = row[0];
}
string ファイル名 = ""
foreach (var row in dt.Rows.Count) {
ファイル名 = row[0];
}

参照型は外に置いたほうがいい。 毎回インスタンスを生成すると非常に遅くなる。