Column名を変えた時のUpdate文の書き方
よろしくお願い致します。
VB2010とSQLServer2008でデータベースの勉強をしております。
DataAdapterを使用し、SelectCommand,UpdateCommandを設定、
それをDataGridViewに表示させています。
Column名とデータをSelectComanndの「AS」で変更した場合の
Update文の「CASE」の書き方?で混乱しております。
データベース Test1
No Sex
------
1 1
2 2
3 0
DataGridViewの表示
No 性別
-------
1 男
2 女
3 ?
データベース Test1をDataGridViewに表示
その際、「Sex」を1=男, 2=女, 0=?と表示させています
同時に、Column名を「性別」に変えました
SelectCommandでSQL文を以下のように設定しました
SELECT No, CASE Sex WHEN 1 THEN '男'
WHEN 2 THEN '女'
ELSE '?'
END AS 性別
FROM Test1
これは希望通りに表示されました
UpdateCommandでSQL文を以下のように設定しました。
UPDATE Test3 SET Sex = CASE @sex WHEN '男' THEN 1
WHEN '女' THEN 2
ELSE 0
END
WHERE No = @no
SQLDataAapter.UpdateCommand = New SqlCommand(SQL, myConnection)
SQLDataAapter.UpdateCommand.Parameters.Add("@sex", SqlDbType.Int, 32, "Sex")
SQLDataAapter.UpdateCommand.Parameters.Add("@no", SqlDbType.Int, 32, "No").SourceVersion = DataRowVersion.Original
UPDATE文でCASEが使えることは検索して分かったのですが、
Columnの表示を変えた場合はどうしたらよいのでしょうか?
なお、Select文、Update文ともに、「CASE」句を削除すれば正しく動作することは確認できました。
質問する場所を「データベース」と迷ったのですがこちらにしました。
ご指導のほど、よろしくお願い致します
お礼
皆さんありがとうございました。 久しぶりにsqlを使ったら、いろいろ忘れていました。 参考書片手に作業しているのですが・・・・ お手数をおかけしました。