Zum Inhalt springen

SQL Server 2008 Trotz Autoincrement wird nach einem Wert verlangt


Empfohlene Beiträge

Geschrieben

Hallo,

ich habe eine Frage. Ich bette in C# Code SQL ein. Ich möchte eine Tablle anlegen. Es besteht im Code eine Verbindung zur Datenbank. (Die habe ich getestet, die geht, daran liegt es nicht.) Mein Problem ist die Spalte ID aus der Tabelle. Die möchte ich Autoincrement anlegen. Der Code lässt sich ausführen. Die Tabelle ist dann auch in der DB zu finden. Aber wenn ich dann aus einer Maske heraus, Daten in die Spalte Name laden will, besteht das Problem, dass er sich beschwert, dass er für die Spalte ID kein Wert eingegeben wird. Aber ich habe doch beim erstellen der Tabelle angegeben, dass automatisch die ID hochgesetzt wird, wenn ein Name angelegt wird.

Kann mir jemand sagen, wo der Fehler liegt?

LG, Azubine

post-42627-1443044842645_thumb.jpg

Geschrieben (bearbeitet)

du musst beim einfügen neuer datensätze dennoch angeben, dass das feld ID belegt werden muss. Meistens mit einer Art Platzhalter wie " " oder dergleichen, je nach DBMS.

Mit deinem Screenshot kann man nichts anfangen. Zeig doch bitte den SQL Befehl, der die Daten in die Tabelle lädt (kopier ihn einfach.. kein screenshot).

grüße

delen

EDIT: die frage nach dem DBMS hat sich geklärt, man muss halt auch den threadtitel lesen können :D.

EDIT die 2.:

einen Auto_Increment gibt es im SQL Server nicht. du benötigst "IDENTITY(1,1)" statt dem auto_increment.

Bearbeitet von delen
Geschrieben (bearbeitet)

Danke schonmal.

Ok, nur die SQL Statements:

//Zur Anlage der Tabelle

string strSQL = "CREATE TABLE TestSA_Basar(Test Integer)" +

"ID INTEGER NOT NULL IDENTITY(1,1)"+

"Name CHAR"+

"PRIMARY KEY(ID)";

//Zum einlesen der Daten

string strSQL2 = "INSERT INTO Test(ID, Name)"+

"VALUES (' ','" + textBox1.Text +"') ";

Hatte es schon durch deinen Hinweis schon etwas geändert.

Bearbeitet von Azubine27
Geschrieben

was du auch machen kannst ist, dass du die ID beim insert ganz einfach weglässt. also:

INSERT INTO Test(Name)

VALUES ('Name') ;

aber hats denn nun funktioniert oder nicht?

grüße

delen

Geschrieben (bearbeitet)

So wie du es geschrieben hast geht es leider nicht. Also ID rausnehmen.

Und so wie ich es geschrieben habe geht es auch nicht

:-(

Fehler gefunden, es lag daran, wie ich die Tabelle angelegt hatte :-)

So ist es richtig:

CREATE TABLE SABasarTest(

ID INTEGER IDENTITY(1,1),

Name NVARCHAR(80)

)

Bearbeitet von Azubine27
Geschrieben

"geht nicht" is leider keine ausreichende fehlerbeschreibung ;-). Ich brauch mehr Input ^^

ich habs mit einer testtabelle probiert, es hat funktioniert. beide methoden. ich bin kein "richtiger" entwickler, aber von der SQL Seite aus ist die Syntax richtig.

achja was mir noch einfällt: sql server mag keine ". Wenn man zeichen einfügen will, dann immer einfache anführungszeichen, also ' nutzen.

prüf doch bitte manuell nach, ob in den tabelleneigenschaften bei "identitätsspezifikation" für die ID-Spalte "Ja" drinsteht.

grüße

delen

EDIT: gut^^

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...