sql table aanmaken met parameters.

Status
Niet open voor verdere reacties.

666joe666

Gebruiker
Lid geworden
23 nov 2005
Berichten
137
Graag zou ik een tabel aanmaken via c#.
Hiervoor gebruik ik de volgende code. Hierop krijg ik echter een fout dat er iets mis is met de manier waarop ik mijn naam van men sql tabel invoer


[cpp]

using (SqlCommand cmd = connection.CreateCommand())
{
cmd.Parameters.AddWithValue("@jaar", jaartal);
cmd.CommandText =
@"

BEGIN
CREATE TABLE @jaar (
Code:
 [text] NULL,
	                    [type] [text] NULL,
	                    [datum] [datetime] NULL,
	                    [uur] [text] NULL,
	                    [controller] [text] NULL,
	                    [fout] [text] NULL,
	                    [teller] [text] NULL,
	                    [omschrijving] [text] NULL,
	                    [graad] [text] NULL,
	                    [var1] [text] NULL,
	                    [var2] [text] NULL,
	                    [var3] [text] NULL,
	                    [var4] [text] NULL,
	                    [var5] [text] NULL,
	                    [var6] [text] NULL,
	                    [var7] [text] NULL,
	                    [var8] [text] NULL,
	                    [var9] [text] NULL,
	                    [var10] [text] NULL,
	                    [var11] [text] NULL,
	                    [var12] [text] NULL,
	                    [var13] [text] NULL,
	                    [var14] [text] NULL,
	                    [var15] [text] NULL,
	                    [var16] [text] NULL,
	                    [var17] [text] NULL,
	                    [var18] [text] NULL,
	                    [var19] [text] NULL,
	                    [var20] [text] NULL,
	                    [var21] [text] NULL,
	                    [var22] [text] NULL,
	                    [var23] [text] NULL,
	                    [var24] [text] NULL,
	                    [var25] [text] NULL,
	                    [var26] [text] NULL,
	                    [var27] [text] NULL,
	                    [var28] [text] NULL,
	                    [var29] [text] NULL,
	                    [var30] [text] NULL,
	                    [var31] [text] NULL,
	                    [var32] [text] NULL,
	                    [var33] [text] NULL,
	                    [var34] [text] NULL,
	                    [var35] [text] NULL,
	                    [var36] [text] NULL,
	                    [var37] [text] NULL,
	                    [var38] [text] NULL,
	                    [var39] [text] NULL,
	                    [var40] [text] NULL,
	                    [Cat_MMAP] [text] NULL
); END";

                    try
                    {
                        cmd.ExecuteNonQuery();
                    }
                    catch
                    { 
                    
                    }
                }
                connection.Close();
[/cpp]


en ik krijg deze fout Incorrect syntax near '@jaar'. 
als ik bij create table een naam invul en geen parameter heb ik geen probleem.
iemand een idee wat ik fout doe.
 
Laatst bewerkt door een moderator:
Afhankelijk van de database mag een naam van een tabel niet starten met een cijfer. Ik ben niet zo bekend met de C# parameter statements, maar het lijkt erop alsof je de tabel een naam zoals "2013" probeerd te geven. In onder andere MSSQL is dat niet toegestaan.
 
Bedankt voor de info. Maar als ik een tabel aanmaak en de tekst gewoon 2013 invoer lukt dit wel. enkel als ik dit via parameters wil doen lukt dit niet.
 
heb de bestandsnaam nu verander in evenementen2013 wanneer ik dit uitvoeren krijg ik steeds de melding dat er een fout is bij @jaar
 
Het lijkt alsof de parameter niet goed wordt meegegeven dan. Ik kan niet direct een fout ontdekken (de connectie wordt nergens geopend, maar omdat je aangeeft dat de code met een statische naam wel werkt neem ik dat niet mee).

Enige wat ik kan bedenken is de "addwithvalue" verplaatsen onder de query text, maar ik kan nergens een beschrijving vinden die zegt dat dat moet.
 
Beste,

Probeer eens dit stukje code BOVEN deze regel cmd.Parameters.AddWithValue("@jaar", jaartal); te zetten.
Code:
cmd.CommandType = CommandType.StoredProcedure;

Ik weet niet als het daar aan ligt, maar het lijkt dat je met procedure statements aan het werken bent.

Met vriendelijke groeten,
Flemming.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan