2008年8月28日木曜日

.NET VisualStudioからAccessを操作する際の注意点

VisualSutdioからAccessを操作する場合、知らないと色々とハマることが多いです。

1.DbParameterでAccessの時間を含む日付型フィールドのパラメータを作成できない

2.SQLのJOIN句には括弧が必要。
SELECT * FROM ((TABLE1
INNER JOIN TABLE2 ON TABLE1.CD = TABLE2.CD)
INNER JOIN TABLE3 ON TABLE1.CD = TABLE3.CD)

3.名前付きパラメータであっても、設定する順番が重要。疑問符(?)で指定する位置指定パラメータが適用される。
Dim sql As String = "SELECT * FROM TABLE1 WHERE CD=@CD AND NAME=@NAME"
Dim cmd AS DbCommand = 略
cmd.CommandText = sql

Dim prm1 As DbParameter = cmd.CreateParameter
prm1.ParameterName = "CD"

Dim prm2 As DbParameter = cmd.CreateParameter
prm2.ParameterName ="NAME"

'Sqlのパラメータの順序通りに追加する必要がある。
cmd.Parameters.Add(prm1)
cmd.Parameters.Add(prm2)
’順番を変えるとエラーになる。
cmd.Parameters.Add(prm2)
cmd.Parameters.Add(prm1)

0 件のコメント: