development guideline/ADO.NET
をテンプレートにして作成
Search in
this wiki
and
or
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
#ls2()
#contents
#br
* 前提条件 [#tb1c191f]
** データアクセス基盤技術 [#r4432a1b]
- データベースへアクセスするためのコードは、ADO.NETに従い...
- IDbCommand , IDbConnectionインターフェイス等を用いて、S...
- MDACベースのADOと、ADO.NETは全く別物なので注意すること。
- また、ODBCはレガシーテクノロジなので、新規に利用すべき...
** データアクセスモデル [#m7bc3108]
- .NETを利用してRDBMSからデータを読み出す方式として、接続...
- DataReader … 接続型モデル。高速。バッチ向き。
- DataTable …非接続型モデル。データソース接続を占有しない...
* データアクセス共通 [#tc41f8d7]
** トランザクション制御 [#s30ac8ef]
- トランザクション制御は、TransactionScopeクラスを用いて...
** トランザクションとコネクションの関係 [#r429b98e]
- 同じDBに対してアクセスする場合、1つのTransaction内では1...
- つまり、1つのTransaction内では、複数のSqlConnectionオブ...
-- [Why] 分散トランザクションに昇格させないため。
** SQLパラメータ [#l67af98b]
- ADO.NETのSqlParameterクラスとパラメータ化ステートメント...
-- それにより、SQLクエリ文字列の無害化(SQLインジェクショ...
** ロックヒント [#m2661cd0]
- 基本的には、各々のSQL文にロックヒントは明示しない。
- 指定が必要な場合には、識者と十分に検討する。
** フォーマット変換 [#d4f8db2a]
- DB層、DBアクセス層では、データの表示を意識したフォーマ...
** Connection管理 [#r7ccd37e]
- DB接続管理は共通化し、個別にSqlConnectionインスタンスを...
** DBカラム型とC#基本データ型のマップ [#q7aa43c1]
- データ更新時の入力データ型については、DBカラム型とのマ...
DBカラム型*CLR基本データ型
|varbinary|System.Byte[]|
|bit|System.Boolean|
|text|System.String|
|tinyint|System.Byte|
|float|System.Double|
|bigint|System.Int64|
|varchar|System.String|
|nvarchar|System.String|
|ntext|System.String|
|decimal|System.Decimal|
|smallmoney|System.Decimal|
|sql_variant|System.Int32|
|image|System.Byte[]|
|datetime|System.DateTime|
|real|System.Single|
|int|System.Int32|
|numeric|System.Decimal|
|money|System.Decimal|
|nchar|System.String|
|smalldatetime|System.DateTime|
|smallint|System.Int16|
|binary|System.Byte[]|
|char|System.String|
** パラメータでのカラム型指定 [#jd04b3ba]
- SqlParameterオブジェクトにはカラム型を指定する。
- 無指定の場合、nvarcharとなり、性能劣化の原因となる場合...
** DbNullの扱い [#e49719c5]
- DataTableの文字列型カラムでは、NullValueプロパティに「(...
- SQL Serverでは、空の文字列とNull値は、別の値として扱わ...
* 接続型モデル(DataReader) [#j246f848]
** ConnectionのClose [#me65823f]
- 接続の閉塞が確実に行われるように、意識して実装すること。
- using句を用いると良い。
* 非接続型モデル(DataTable) [#g84f14eb]
** 排他制御 [#ra031375]
- 楽観的(または悲観的)排他制御が確実に行われるように、...
** データサイズ [#x45a1c4f]
- 過度に大量のデータを読み込まないように留意すること。
** 参照系と更新系で別のDataSetとする。 [#n0347055]
- 参照系と更新系のDataSetは、別々に作成する。
- 更新系のDataTableのスキーマは、物理テーブルと完全に同じ...
** 型付DataTableを利用する。 [#kbd35ca2]
- 実装利便性、ビルド時チェック可能等の観点から、DataSetは...
----
* 参考 [#y7e592ab]
- http://msdn.microsoft.com/ja-jp/library/cc419188.aspx
終了行:
#ls2()
#contents
#br
* 前提条件 [#tb1c191f]
** データアクセス基盤技術 [#r4432a1b]
- データベースへアクセスするためのコードは、ADO.NETに従い...
- IDbCommand , IDbConnectionインターフェイス等を用いて、S...
- MDACベースのADOと、ADO.NETは全く別物なので注意すること。
- また、ODBCはレガシーテクノロジなので、新規に利用すべき...
** データアクセスモデル [#m7bc3108]
- .NETを利用してRDBMSからデータを読み出す方式として、接続...
- DataReader … 接続型モデル。高速。バッチ向き。
- DataTable …非接続型モデル。データソース接続を占有しない...
* データアクセス共通 [#tc41f8d7]
** トランザクション制御 [#s30ac8ef]
- トランザクション制御は、TransactionScopeクラスを用いて...
** トランザクションとコネクションの関係 [#r429b98e]
- 同じDBに対してアクセスする場合、1つのTransaction内では1...
- つまり、1つのTransaction内では、複数のSqlConnectionオブ...
-- [Why] 分散トランザクションに昇格させないため。
** SQLパラメータ [#l67af98b]
- ADO.NETのSqlParameterクラスとパラメータ化ステートメント...
-- それにより、SQLクエリ文字列の無害化(SQLインジェクショ...
** ロックヒント [#m2661cd0]
- 基本的には、各々のSQL文にロックヒントは明示しない。
- 指定が必要な場合には、識者と十分に検討する。
** フォーマット変換 [#d4f8db2a]
- DB層、DBアクセス層では、データの表示を意識したフォーマ...
** Connection管理 [#r7ccd37e]
- DB接続管理は共通化し、個別にSqlConnectionインスタンスを...
** DBカラム型とC#基本データ型のマップ [#q7aa43c1]
- データ更新時の入力データ型については、DBカラム型とのマ...
DBカラム型*CLR基本データ型
|varbinary|System.Byte[]|
|bit|System.Boolean|
|text|System.String|
|tinyint|System.Byte|
|float|System.Double|
|bigint|System.Int64|
|varchar|System.String|
|nvarchar|System.String|
|ntext|System.String|
|decimal|System.Decimal|
|smallmoney|System.Decimal|
|sql_variant|System.Int32|
|image|System.Byte[]|
|datetime|System.DateTime|
|real|System.Single|
|int|System.Int32|
|numeric|System.Decimal|
|money|System.Decimal|
|nchar|System.String|
|smalldatetime|System.DateTime|
|smallint|System.Int16|
|binary|System.Byte[]|
|char|System.String|
** パラメータでのカラム型指定 [#jd04b3ba]
- SqlParameterオブジェクトにはカラム型を指定する。
- 無指定の場合、nvarcharとなり、性能劣化の原因となる場合...
** DbNullの扱い [#e49719c5]
- DataTableの文字列型カラムでは、NullValueプロパティに「(...
- SQL Serverでは、空の文字列とNull値は、別の値として扱わ...
* 接続型モデル(DataReader) [#j246f848]
** ConnectionのClose [#me65823f]
- 接続の閉塞が確実に行われるように、意識して実装すること。
- using句を用いると良い。
* 非接続型モデル(DataTable) [#g84f14eb]
** 排他制御 [#ra031375]
- 楽観的(または悲観的)排他制御が確実に行われるように、...
** データサイズ [#x45a1c4f]
- 過度に大量のデータを読み込まないように留意すること。
** 参照系と更新系で別のDataSetとする。 [#n0347055]
- 参照系と更新系のDataSetは、別々に作成する。
- 更新系のDataTableのスキーマは、物理テーブルと完全に同じ...
** 型付DataTableを利用する。 [#kbd35ca2]
- 実装利便性、ビルド時チェック可能等の観点から、DataSetは...
----
* 参考 [#y7e592ab]
- http://msdn.microsoft.com/ja-jp/library/cc419188.aspx
ページ名: