2016-04-04 17 views
0

Tabelle erstellen in einer sqlcommand Zeichenfolge wieWie erstellt man eine Tabelle in sqlcommand string?

"CREATE TABLE '"+txtTableName.Text+"' (ID int IDENTITY(1,1), 
ColumnName varchar(255))"; 

würden Sie einen Fehler geben

"falsche Syntax nahe 'was auch immer Tabellenname Sie in der Textbox angeben'" sagen.

Stattdessen können Sie verwenden

"CREATE TABLE [dbo].['"+txtTableName.Text+"'] (ID int IDENTITY(1,1), 
ColumnName varchar(255))"; 

Antwort

0

Zuerst würde ich fragen, warum Sie SQL-Tabellen über den Eintritt in eine Textbox erstellen möchten. Da scheint etwas falsch zu sein.

Aber wenn Sie müssen ... dies sollte funktionieren:

string sql = "If not exists (select name from sysobjects where name = 
'" + txtTableName.Text + "') CREATE TABLE '" + txtTableName.Text + "'(ID int IDENTITY(1,1), 
ColumnName varchar(255))"; 

using (SqlCommand command = new SqlCommand(sql, con)) { 
    command.ExecuteNonQuery(); } 

Ungeprüfte, und dieses Konto nicht für Fehler, die auf das, was der Benutzer tritt in die Textbox, wie die Ein- auftreten Zitat (') Charakter unter anderen.

Ich würde auch vorschlagen, nur eine gespeicherte Prozedur zu erstellen, die einen @ Tabellenname Parameter akzeptiert und dann direkt SQL auf der Serverseite ausführt, um dies zu behandeln.

1

können Sie versuchen, T-SQL-ähnliche

DECLARE @TableName NVARCHAR(100) = 'MyTable' 
DECLARE @SQL NVARCHAR(500) = 'CREATE TABLE [dbo].[' + @TableName + '] (ID int IDENTITY(1,1), 
ColumnName varchar(255))' 

EXEC sp_executesql @SQL 
mit
Verwandte Themen