Avatar billede _et Praktikant
15. juni 2005 - 11:03 Der er 16 kommentarer og
1 løsning

Insert i SQLserver fra code-behind

Jeg skal i min loadform() have indsat følgende SQL
string sql = "INSERT INTO counter (tidspunkt, ip, mac, besog) VALUES ('tiden2', 'ip', 'mac', 'Yes')";

Hvordan gøres det?

Jeg har et datagrid, der henter fra samme DB på siden, hvis det kan være til hjælp.
Avatar billede arne_v Ekspert
15. juni 2005 - 11:04 #1
du laver vel en SqlCommand/OleDbCommand/XxxxCommand med en INSERT statement
og kalder ExecuteNonQuery på den !?
Avatar billede arne_v Ekspert
15. juni 2005 - 11:05 #2
jeg mener ikke at du kan eller bør bruge dit DataGrid i denne sammenhæng
Avatar billede arne_v Ekspert
15. juni 2005 - 11:06 #3
code snippet:

        SqlConnection con = new SqlConnection("server=ARNEPC2;Integrated Security=SSPI;database=Test");
        con.Open();
        SqlCommand ins = new SqlCommand("INSERT INTO MyTable VALUES('abc','123','def')", con);
        ins.ExecuteNonQuery();
Avatar billede arne_v Ekspert
15. juni 2005 - 11:06 #4
det kan så forbedres med brug at parameters etc.etc.
Avatar billede _et Praktikant
15. juni 2005 - 11:12 #5
Jeg prøver lige dit eks.

Kan du lige uddybe hvad "Security=SSPI" dækker over ( bare kort )
Avatar billede arne_v Ekspert
15. juni 2005 - 11:20 #6
SqlConnection er jo SQLServer - hvis du bruger ern anden database skal du bruge andre
klasser

Integrated Security=SSPI

betyder at man logger ind i SQLServer med det Windows brugernavn man er logget på med
(for ASP.NET er det tit ASPNET)
Avatar billede _et Praktikant
15. juni 2005 - 11:24 #7
Det er det der kaldes windows integrated - ikke

Nå Jeg får en timeout på con.open()
Jeg bruger win. int. security til SQL server, og har rettet "con" info så det passer
Har du en ide til hvad der kan være årsagen.
Avatar billede arne_v Ekspert
15. juni 2005 - 11:50 #8
firewall måske ?
Avatar billede _et Praktikant
15. juni 2005 - 11:59 #9
Jeg har ikke firewall på denne maskine. og det virker jo fint med datagrid.

Men kan det evt. skyldes at da SQLserver instansen blev oprettet blev den sat til at tillade "Mit" brugernavn ( det stod der noget om under install - det er SQLexpress ) - Jeg mener at brugeren ASPNET evt. ikke har tilladelse til at "rode" i databasen?
Avatar billede arne_v Ekspert
15. juni 2005 - 12:03 #10
måske
Avatar billede arne_v Ekspert
15. juni 2005 - 12:04 #11
men jeg troede at du havde testet datagrid i samme kontekst som command insert !?!?
Avatar billede _et Praktikant
15. juni 2005 - 12:13 #12
jeg er ikke lige med på hvad du mener med det?

jeg lavede først mit datagrid - og testede det. derefter lavede du så den funktion der skulle indsætte nye data i samme tabel.

Her er et billede af den dataconnection, som datagrid bruger
http://exp.roskvist.net/data.jpg
Avatar billede _et Praktikant
15. juni 2005 - 12:17 #13
det hele foregår på samme pc, både sql og www. og datagrid og insert er på samme site.aspx
Avatar billede arne_v Ekspert
15. juni 2005 - 12:18 #14
du kan da bruge samme connection til DataGrid og til din SqlCommand med INSERT
Avatar billede _et Praktikant
15. juni 2005 - 12:26 #15
ah ha - Hvordan?

Her er Gridview koden:
</asp:GridView>
<asp:SqlDataSource ID="count_" runat="server" ConnectionString="<%$ ConnectionStrings:www_roskvist_netConnectionString %>"
SelectCommand="SELECT COUNT(*) AS [Antal besøg] FROM counter">
</asp:SqlDataSource>
Avatar billede _et Praktikant
15. juni 2005 - 12:32 #16
Jeg skal lige noget, men hvis du gider lave et eksempel på hvordan jeg bruger samme connection, ville jeg blive glad.
Avatar billede _et Praktikant
18. juli 2005 - 13:14 #17
lukket
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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