Gå til innhold

Problemer med SqlCommand(SET INDENTITY_INSERT ON)


Anbefalte innlegg

Sitter og lærer meg litt SQL håndtering i .Net (bruker C#). SQL serveren er MS SQL Server versjon 09.00.1399

 

Har følgende testmetode:

public string enableSetID(string table)
       {
           string ret;
           try
           {
               myCon.Open();
               SqlCommand enID = new SqlCommand("SET IDENTITY_INSERT "+table+" ON", myCon);
               ret = "error code: " + enID.ExecuteNonQuery();
               myCon.Close();
           }
           catch (Exception e)
           {
               ret = e.ToString();
           }
           return ret;

 

enID.ExecuteNonQuery() returnerer -1, som ikke er et veldig godt tegn, får også beskjed om at INDENTITY_INSERT er OFF dersom jeg prøver å sette key manuelt i den aktuelle tabellen. Er av og til greit å kunne sette unik ID selv, og da er vel det der måten å gjøre det på?

Endret av mar
Lenke til kommentar
Videoannonse
Annonse

Se MSDN:

 

I dette tilfelle skal vel metoden alltid returnere -1?

For UPDATE, INSERT, and DELETE statements, the return value is the number of rows affected by the command. For all other types of statements, the return value is -1. If a rollback occurs, the return value is also -1.

Lenke til kommentar
Se MSDN:

 

I dette tilfelle skal vel metoden alltid returnere -1?

For UPDATE, INSERT, and DELETE statements, the return value is the number of rows affected by the command. For all other types of statements, the return value is -1. If a rollback occurs, the return value is also -1.

5268158[/snapback]

 

Er litt usikker, den returnerer 0 når jeg kjører den direkte på SQL serveren. Mulig det er en fordel å legge alt av "functions", "querys" osv på serveren også bare kalle disse ved hjelp av .Net istedenfor å gjøre alt i .Net

Lenke til kommentar
Jeg ville kanskje stolt på det MSDN sier om "ExecuteNonQuery"... Siden det er de som har laget rammeverket, liksom ;)

5275854[/snapback]

 

Joda, men poenget er jo at kommandoen fremdeles ikke gjør det den skal, så noe er jo galt.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...