2016-11-15 5 views
-2

私は、textBoxに入力されたテーブル名に基づいてボタンをクリックするとテーブルを作成しています。すべてが機能的ですが、SQLのテーブル名に関連するものを見落としている可能性があります。例えば。名前jevonはデータベースに「jevon」と表示されます。一重引用符を排除する方法はありますか?私の実装では監視ですか?sqlデータベース名の形式から引用符を削除するC#

private void button1_Click(object sender, EventArgs e) 
    { 
     string connectionString = "Data Source=LPMSW09000012JD\\SQLEXPRESS;Initial Catalog=Pharmacies;Integrated Security=True"; 
     string query = "CREATE TABLE [dbo].['" + textBox1.Text + "'](" + "[Code] [varchar] (7) NOT NULL," + 
     "[Description] [varchar] (38) NOT NULL," + "[NDC] [varchar] (12) NULL, " + 
     "[Supplier Code] [varchar] (38) NOT NULL," + "[UOM] [varchar] (8) NULL," + "[Size] [varchar] (8) NULL,)"; 


     using (SqlConnection connection = new SqlConnection(connectionString)) 
     { 
      SqlCommand command = new SqlCommand(query, connection); 
      command.Connection.Open(); 
      command.ExecuteNonQuery(); 
     } 
    } 
} 

答えて

4

だけで単一引用符を削除し、エンティティ名は引用符に囲まれてはいけません。

string query = "CREATE TABLE [dbo].[" + textBox1.Text + "](..... 

そしてノート:このように検証されていない文字列を使用するには悪いスタイルで、ユーザーはすべて入力することができあなたのデータベースを完全に破壊するような種類のものは...だから、とにかく重大なものよりも運動のように見えます。

関連する問題