Avatar billede ircnoob Nybegynder
27. september 2006 - 18:00 Der er 12 kommentarer og
1 løsning

Database insert into table

Nedenstående virker fint nok .. har colums, ID (auto incr), name, notes og date ..

name & notes = varchar, og date = datetime ..

Det jeg søger er, hvordan jeg nu fx klikker på en "opret medlem" button, at den så læser fra de 3 tekstfelter ovenover og laver en insert i databasen .. min nuværnede insert melder ikke fejl, men der sker heller ingeting :)

Hvordan kan det se ud :) ??

------ select der virker -----

string selectSQL = "SELECT Name, ID from mebers";
        SqlConnection con = new SqlConnection(connectionString);
        SqlCommand cmd = new SqlCommand(selectSQL, con);

        //Open the connection
        con.Open();

        //Define the connection

        DropDownList1.DataSource = cmd.ExecuteReader();
        DropDownList1.DataTextField = "Name";
        DropDownList1.DataValueField = "ID";

        //Activate the binding
        DropDownList1.DataBind();

        con.Close();

        //Make sure nothing is currently selected
        DropDownList1.SelectedIndex = -1;
Avatar billede ircnoob Nybegynder
27. september 2006 - 18:16 #1
Glem det.. havde glemt commit ...

  cmd.Parameters.Add("?date", SqlDbType.DateTime);
        cmd.Parameters["?date"].Value = 10 - 10 - 2001;

Hvorn skal dates skrives for at den ikke klager over at at den får en int ?
Avatar billede nielle Nybegynder
27. september 2006 - 18:23 #2
cmd.Parameters["?date"].Value = new DateTime(2001, 10, 10);
Avatar billede ircnoob Nybegynder
27. september 2006 - 18:27 #3
LAST_INSERT_ID() vil den ikke kendes ved.. men kom også fra lidt ældre mysql kode..  hvorn ser det ud med mssql ?
Avatar billede nielle Nybegynder
27. september 2006 - 18:41 #4
LAST_INSERT_ID() er fra MySQL. I SQL Server bruger man som regel @@IDENTITY.
Avatar billede nielle Nybegynder
27. september 2006 - 18:44 #5
Avatar billede ircnoob Nybegynder
27. september 2006 - 18:49 #6
Exception Details: System.Data.SqlClient.SqlException: Line 1: Incorrect syntax near '?'.
Line 1: Incorrect syntax near '?'.

Source Error:

Line 108:        cmd.Parameters["?date"].Value = new DateTime(2001, 10, 10);
Line 109:
Line 110:        cmd.ExecuteNonQuery(); <- fejl her .. :s
Line 111:    }
Line 112:}

---source----

  SqlConnection con = new SqlConnection(connectionString);
        con.Open();
        SqlCommand cmd = new SqlCommand("INSERT INTO member VALUES (@@IDENTITY, ?name, ?notes, ?date)", con);
       

        cmd.Parameters.Add(new SqlParameter("?name", SqlDbType.VarChar));
        cmd.Parameters.Add("?notes", SqlDbType.VarChar);
        cmd.Parameters.Add("?date", SqlDbType.DateTime);
       
        cmd.Parameters["?name"].Value = "Martin B";
        cmd.Parameters["?notes"].Value = "Lillebror";
        cmd.Parameters["?date"].Value = new DateTime(2001, 10, 10);

        cmd.ExecuteNonQuery();
Avatar billede nielle Nybegynder
27. september 2006 - 19:00 #7
Brug @-tegn i stedet for ?-tegn i dine parameters.
Avatar billede ircnoob Nybegynder
27. september 2006 - 19:04 #8
ændrer ikk noget
Avatar billede ircnoob Nybegynder
27. september 2006 - 19:08 #9
hehe .. fordi at jeg har stavet members forkert i db ;)

anyway ...

: An explicit value for the identity column in table 'mebers' can only be specified when a column list is used and IDENTITY_INSERT is ON.
Avatar billede nielle Nybegynder
27. september 2006 - 19:11 #10
Hvis du har defineret dit første felt i member-tabellen som værende en IDENTITY, så behøver du ikke selv tildele den en værdi.

SqlCommand cmd = new SqlCommand("INSERT INTO member VALUES (@name, @notes, @date)", con);
Avatar billede ircnoob Nybegynder
27. september 2006 - 19:14 #11
Når det kna også blive for meget af det gode :D :D det virker weeee :D :D :D :D :D :D :D :D : D : weeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee


svar nu.... eller nu.. eller nu... weee
Avatar billede nielle Nybegynder
27. september 2006 - 19:18 #12
Hele pointen med en DENTITY er egentlig at den selv trækker et nyt nummer ved hver INSERT. Den svare m.a.o. til auto_increment i MySQL.

Du kunne godt have beholdt din @@INSERT i det ovesntående, men så burde du nok have valgt at undlade at gøre feltet til en IDENTITY i første omgang.
Avatar billede ircnoob Nybegynder
27. september 2006 - 21:13 #13
pr0n
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester