Avatar billede mbm Nybegynder
02. maj 2006 - 19:54 Der er 19 kommentarer

Insert into database spørgsmål

hejsa,
For en god ordens skyld skal det siges at jeg skriver asp.net i VWD med VB.
Jeg har i VWD oprettet en side hvorpå jeg har en række form felter som skal tage imod oplysniger for en ny bruger på mit kommende site.
Men i alle de wrox bøger jeg har indkøbt om asp.net 2.0 står der ikke noget om dette når altså det er en form jeg selv har lavet.
Nogen som kan vise mig i den rigtige retning og tager jeg helt fejl hvis jeg mener at man skal / kan gøre det som ved det "gamle" asp????
Avatar billede arne_v Ekspert
02. maj 2006 - 20:03 #1
du kan vel fyre en INSERT SQL af i den kode som udfoeres ved click paa submit
button
Avatar billede mbm Nybegynder
02. maj 2006 - 20:47 #2
ja men hvordan ser den syntax ud?
Avatar billede arne_v Ekspert
02. maj 2006 - 20:55 #3
hvilken database

(SQL syntaxen er den samme, men klasserne vil afhaenge af databasen)
Avatar billede jokkejensen Novice
02. maj 2006 - 21:02 #4
I traditionel asp, hentede man dem med Request.QueryString, eller Form..

Det er bedre at benytte htmlControls eller webcontrols, og tilgå værdien med controlID.Text..

herefter kan du så insert into table values ("& minTextBox.Text &")
Avatar billede mbm Nybegynder
02. maj 2006 - 21:02 #5
jeg vil gerne se et eksempel på hvordan jeg inserter noget i en db ud fra en form.
Avatar billede arne_v Ekspert
02. maj 2006 - 21:25 #6
lad os antage at du bruger Access

            Dim con As OleDbConnection = New OleDbConnection("Provider=Microsoft
.Jet.OLEDB.4.0;Data Source=C:\AccessBases\Test.mdb")
            con.Open
            Dim ins As OleDbCommand = New OleDbCommand("INSERT INTO dintabel VALUES('" & tb1.Text & "','" & tb2.Text & "'), con)
            ins.ExecuteNonQuery
            con.Close
Avatar billede mbm Nybegynder
02. maj 2006 - 21:27 #7
jeg bruger den MS SQL som ligger i VWD og har min connection string gemt i web.config
Avatar billede arne_v Ekspert
02. maj 2006 - 21:42 #8
det er naesten det samme:

            Dim con As SqlConnection = New SqlConnection(connstr)
            con.Open
            Dim ins As SqlCommand = New SqlCommand("INSERT INTO dintabel VALUES('" & tb1.Text & "','" & tb2.Text & "'), con)
            ins.ExecuteNonQuery
            con.Close
Avatar billede mbm Nybegynder
02. maj 2006 - 21:56 #9
første fejl jeg møder er at den ikke kan finde min connectio string som ellers ligger i min web.config
Avatar billede arne_v Ekspert
02. maj 2006 - 21:58 #10
hvordan henter du den og hvordan ser din web.config ud ?
Avatar billede mbm Nybegynder
02. maj 2006 - 22:06 #11
her er et udsnit af min web.config:

    <connectionStrings>
        <add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\wow-craftsmen.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
    </connectionStrings>

og fejlen må ligge her:

Dim con As SqlConnection = New SqlConnection(ConnectionString)
Avatar billede arne_v Ekspert
02. maj 2006 - 22:13 #12
har du en:

ConnectionString = ConfigurationManager.ConnectionStrings("pubs").ConnectionString

?
Avatar billede mbm Nybegynder
02. maj 2006 - 22:20 #13
jeg tror jeg har brug for at se et færdig eksempel
Avatar billede arne_v Ekspert
02. maj 2006 - 22:58 #14
jeg kan proeve at bikse noget senere
Avatar billede arne_v Ekspert
03. maj 2006 - 04:15 #15
det her er sikkert ikke et specielt godt eksempel, men det viser et eller
andet:

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script language="VB" runat="server">
    Private Sub LoadData
        Dim con As SqlConnection = New SqlConnection ("server=ARNEPC3;Integrated Security=SSPI;database=Test")
        con.Open
        Dim da As SqlDataAdapter = New SqlDataAdapter("SELECT * FROM T1", con)
        Dim ds As DataSet = New DataSet("T1")
        da.Fill(ds)
        MyDataList.DataSource = ds
        MyDataList.DataBind
        con.Close
    End Sub
    Private Sub Page_Load(src As Object, e As EventArgs)
        Call LoadData
    End Sub
    Private Sub Save_Click(src As Object, e As EventArgs)
        Dim con As SqlConnection = New SqlConnection("server=ARNEPC3;Integrated Security=SSPI;database=Test")
        con.Open
        Dim ins As SqlCommand = New SqlCommand("INSERT INTO T1 VALUES(" & f1.Text & ",'" & f2.Text & "')", con)
        ins.ExecuteNonQuery
        con.Close
        Call LoadData
    End Sub
</script>
<form runat=server>
Current data:
<table border>
    <tr>
    <th>F1</th>
    <th>F2</th>
    </tr>
    <asp:Repeater id="MyDataList" runat="server">
        <ItemTemplate>
            <tr>
            <td><%# DataBinder.Eval(Container.DataItem,"F1") %></td>
            <td><%# DataBinder.Eval(Container.DataItem,"F2") %></td>
            </tr>
        </ItemTemplate>
    </asp:Repeater>
</table>
Add row:
<br/>
F1: <asp:TextBox id="F1" runat="server"/>
<br/>
F2: <asp:TextBox id="F2" runat="server"/>
<br/>
<asp:Button id="SaveBtn" Text="Save" OnClick="Save_Click" runat="server"/>
</form>
Avatar billede mbm Nybegynder
03. maj 2006 - 20:41 #16
ok efter lidt omskrivning fik jeg den til at skrive til min db, men så mangler jeg bare at kunne hente min connection string fra min web.config file.
Avatar billede arne_v Ekspert
04. maj 2006 - 01:55 #17
Dim con As SqlConnection = New SqlConnection (ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)

tror jeg
Avatar billede arne_v Ekspert
19. juni 2006 - 00:28 #18
OK ?
Avatar billede arne_v Ekspert
05. oktober 2006 - 03:20 #19
??
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