Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

SQL Server 2008 Trotz Autoincrement wird nach einem Wert verlangt

Empfohlene Antworten

Veröffentlicht

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

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

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

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

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

"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^^

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.