Unity++blog.

UnityやC#とかについて学習したことを書いてます

▶C# SQL server テーブル名を動的に変数で代入する

Unity 関係ないけど・・

sqlの命令文で使うstring文の連結ですが、終わってみるとめっちゃ簡単なのに全然情報がにたどり着かない・・(探し方が悪いのでしょう)、また迷子にならないよう書いておきます。

 

通常のテーブルの列情報を書き換えたり取り出したりするときには

 

f:id:nabesi777:20181222165057p:plain

 

f:id:nabesi777:20181222165529p:plain

 

のような形で 構文内で列名=@仮変数名として

その後にAddwithValue(@適当に名前付ける、代入する変数)と変数の代入ができるのですが、テーブル名へ直接変数を代入する場合には、上記と少し違う構文となりエラーが続いてしまいました・・

 

まずひとつめの解決方法ですが(これはわりとすぐ見つかった)書き方を以下のようにします。

 

テーブルの新規作成の場合

f:id:nabesi777:20181222165020p:plain

 

ほとんど似ていますが、一旦ダブルクォーテーションを区切る必要があります。

”CREATE TABE”+ この間に@仮名前 +”[追加する列名] 型の種類、・・・”

という風にします。

 

次はテーブル削除のDROP TABLE構文です。

なんとまぁ、いつものあれで書くことができるのでした笑

 

これ↓

f:id:nabesi777:20181222170444p:plain

 

これは常識過ぎて誰も書いてないだけなのか・・こんな簡単にできるとは笑

string.Format(DROP TABLE{0}、変数名);

とするだけです。よくみる{0}、変数のやつです。$も使ってええんかな?ひとりでやってるとこんな初歩的なことも時間かかってしまった泣

 

一応全文( connectionは別の所で初期化済み)

f:id:nabesi777:20181222171436p:plain

 

もうひとつのパターン

f:id:nabesi777:20181222171506p:plain

 

SQLは沢山情報は落ちてるだろ~と思ってましたが、古い情報が多いのでつらいです。ピンポイントで情報探すのしんどかったです