La création de la nouvelle table de sql server avec c#
J'ai ce code pour créer la nouvelle table sql
lorsque j'exécute ce son m'indique cette erreur qui est sur la capture d'écran. Dans ma db, il y ise pas une telle table. il montre que cette erreur n'importe quel nom de table. quelqu'un peut-il m'aider?
public void Create(string TName, string ConString)
{
try
{
using (SqlCommand cmd = new SqlCommand("CREATE TABLE [dbo].['" + TName + "']("
+ "[ID] [int] IDENTITY(1,1) NOT NULL,"
+ "[DateTime] [date] NOT NULL,"
+ "[BarCode] [nvarchar](max) NOT NULL,"
+ "[ArtNumber] [nvarchar](max) NOT NULL,"
+ "[ProductName] [nvarchar](50) NOT NULL,"
+ "[Quantity] [int] NOT NULL,"
+ "[SelfPrice] [decimal](18, 2) NOT NULL,"
+ "[Price] [decimal](18, 2) NOT NULL,"
+ "[Disccount] [int] NULL,"
+ "[Comment] [nvarchar](max) NULL,"
+ "CONSTRAINT ['" + TName + "'] PRIMARY KEY CLUSTERED "
+ "("
+ "[ID] ASC"
+ ")WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]"
+ ") ON [PRIMARY]", new SqlConnection(ConString)))
{
cmd.Connection.Open();
cmd.ExecuteNonQuery();
cmd.Connection.Close();
}
}
catch (Exception)
{
throw;
}
}
Vous avez le "Discount" colonne nommée mal, sauf si vous avez l'intention de nommer "disccount" En anglais, il y a un seul " c "dans " discount".
BTW, +1 pour montrer le code et le message d'erreur exact. Cela devrait être un exemple principal de comment poser une question ici.
BTW, +1 pour montrer le code et le message d'erreur exact. Cela devrait être un exemple principal de comment poser une question ici.
OriginalL'auteur Irakli Lekishvili | 2010-12-27
Vous devez vous connecter pour publier un commentaire.
Vous utilisez le même nom pour votre table et sa clé primaire. Essayez plutôt
"CONSTRAINT ['pk_" + TName + "'] PRIMARY KEY CLUSTERED "
.OriginalL'auteur MarkXA
Le message d'erreur ne semble pas être lié au nom de la table. Il semble liée au nom de la contrainte. On dirait que vous êtes sur la dénomination d'une contrainte "beso" et un autre objet de ce nom existe déjà dans votre base de données.
OriginalL'auteur Randy Minder
Au lieu de combattre avec la syntaxe SQL, vous pouvez également utiliser Mig# comme ceci:
Le seul inconvénient de cette approche que Mig# n'est pas adapté à un usage très spécifique à SQL Server fonctionnalités comme il prend en charge de nombreuses plates-formes de façon portable.
OriginalL'auteur Dejan