Avatar billede kapoou Nybegynder
04. januar 2007 - 14:17 Der er 17 kommentarer

felt er ikke defineret

Jeg får følgende fejl når jeg kører denne funktion

    Sub AddToBase2(ByVal sender As Object, ByVal e As EventArgs)

       
        Dim cn As Data.OleDb.OleDbConnection
        Dim cmd As Data.OleDb.OleDbCommand
        Dim str As String

        cn = New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DATA Source=E:\Documents\My documents\dotnet\WebSite11_ver2_20070104_0014\db\database.mdb")
        cn.Open()
        str = "UPDATE DB set companyname='"& companyname.Text &"', campaignname='"&campaignname.Text&"' where id=1"
        'string stores the command and CInt is used to convert number to string
        cmd = New Data.OleDb.OleDbCommand(str, cn)
        cmd.ExecuteNonQuery()


    End Sub

Jeg har to felter som jeg gerne vil gemme data af og de hedder campaignname og companyname.

Hvad gør jeg forkert??
Avatar billede kapoou Nybegynder
04. januar 2007 - 14:18 #1
Fejlen er "Name 'companyname' is not declared"
Fejlen er "Name 'campaignname' is not declared"
Avatar billede jokkejensen Novice
04. januar 2007 - 14:51 #2
den ved ikke hvilke tekst bokse du mener.

prøv ex:

((TextBox)Page.FindControl("companyname")).Text
Avatar billede kapoou Nybegynder
04. januar 2007 - 15:02 #3
str = "UPDATE DB set companyname='"& companyname &"',campaignname='"& campaignname&"' where id=1"

Sådan ser min sqlstreng ud nu. hvor skal det så smides ind?
Avatar billede kapoou Nybegynder
04. januar 2007 - 15:07 #4
str = "UPDATE DB set companyname='"& companyname.Text &"',campaignname='"& campaignname.Text &"' where id=1"

selvfølgelig.
Avatar billede kalp Novice
04. januar 2007 - 16:01 #5
sørg for at der står

public foran dine felter...

hvis du ikke skriver noget foran dem er de private.. og så kan du ikke se dem.
Avatar billede kapoou Nybegynder
04. januar 2007 - 16:12 #6
Du må hjælpe mig lidt mere. jeg er fuldstændig blank på det her. hvor skal jeg srive hvad?
Avatar billede kalp Novice
04. januar 2007 - 16:14 #7
hvor defineres dine tfelter... campaignname og companyname ?
Avatar billede kapoou Nybegynder
04. januar 2007 - 17:04 #8
Min kode ser ud som følger.


testpage1.aspx
    <asp:SqlDataSource ID="oracle" runat="server" ConnectionString="<%$ ConnectionStrings:oracledatabase %>" ProviderName="<%$ ConnectionStrings:oracledatabase.ProviderName %>"
            SelectCommand="SELECT [id],[campaignname],[companyname],[activity] FROM [DB] where [id]=@id"
            UpdateCommand="UPDATE [DB] set [campaignname]=@campaignname,[companyname]=@companyname,[activity]=@activity where [id]=@id"
            InsertCommand="INSERT into [DB] ([id], [campaignname],[companyname],[activity]) VALUES(@id, @campaignname, @companyname, @activity)">
        <SelectParameters>
            <asp:QueryStringParameter Name="id" QueryStringField="id" Type="Int32" />
        </SelectParameters>
    </asp:SqlDataSource>


    <form id="form1" runat="server">
    <div>
        <asp:DataList ID="datalist1" runat="server" DataSourceID="oracle">
            <ItemTemplate>
                <asp:TextBox ID="companyname" runat="server" Text='<%# Eval("companyname") %>'></asp:TextBox>
                <asp:TextBox ID="campaignname" runat="server" Text='<%# Eval("campaignname") %>'></asp:TextBox>

                <asp:Button runat="server" OnClick="AddToBase2" />
            </ItemTemplate>


----------------------
testpage1.aspx.vb

Partial Class _Default
    Inherits System.Web.UI.Page



    Sub AddToBase2(ByVal sender As Object, ByVal e As EventArgs)

        Dim companyname As TextBox
        Dim campaignname As TextBox

        Dim cn As Data.OleDb.OleDbConnection
        Dim cmd As Data.OleDb.OleDbCommand
        Dim str As String

        cn = New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DATA Source=E:\Documents\My documents\dotnet\WebSite11_ver2_20070104_0014\db\database.mdb")
        cn.Open()
        str = "UPDATE DB set companyname='" & companyname.Text &"',campaignname='"& campaignname.Text &"' where id=1"
        'string stores the command and CInt is used to convert number to string
        cmd = New Data.OleDb.OleDbCommand(str, cn)
        cmd.ExecuteNonQuery()


    End Sub



End Class
Avatar billede kalp Novice
04. januar 2007 - 17:08 #9
Dim Public companyname As TextBox
        Dim Public campaignname As TextBox

hmm.. ja det er vb.. ved ikke om det er sådan eller om man overhovedet behøver det!
Avatar billede kalp Novice
04. januar 2007 - 17:11 #10
Public companyname As TextBox
        Public campaignname As TextBox

sådan skal du faktisk gøre..
Avatar billede kalp Novice
04. januar 2007 - 17:21 #11
og ellers... beklager..:)

Public companyname As TextBox = New TextBox
Public campaignname As TextBox = New TextBox

eller

Dim campaignname As TextBox = New TextBox
Dim companyname As TextBox = New TextBox
Avatar billede kapoou Nybegynder
04. januar 2007 - 17:22 #12
nu laver jeg dem public i steren af aspx.vb dokumentet men får nu følgende fejl

System.Data.OleDb.OleDbException: Disk or network error
Avatar billede kalp Novice
04. januar 2007 - 17:24 #13
Avatar billede kalp Novice
04. januar 2007 - 17:25 #14
forstår det som om databasen er åben.. og evt. af en anden bruger en den som er logget ind.. om ikke andet så luk databasen hvis du har den åben!
Avatar billede kapoou Nybegynder
04. januar 2007 - 17:47 #15
Jeg løste det ved at arbejde videre på den computer hvor jeg havde startet. Der var åbenbart gået et eller andet galt ved overførelsen eller noget i den retning. Jeg får nu fekl i følgende linie

str = "UPDATE DB set [companyname]='" & companyname.Text & "',[campaignname]='" & campaignname.Text & "' where id=1"

Det virker som om at den finder et forkert felt som ikke indeholder noget og derfor laver fejl i sql sætningen da den er NULL.
Avatar billede kapoou Nybegynder
04. januar 2007 - 17:50 #16
Det er en NullReferenceException den laver.
Avatar billede kalp Novice
04. januar 2007 - 18:06 #17
kan ikke rigtig nå mere nu, men umiddelbart ser det også ud til at du har to gange textbox..

<asp:TextBox ID="companyname" runat="server" Text='<%# Eval("companyname") %>'></asp:TextBox>
                <asp:TextBox ID="campaignname" runat="server" Text='<%# Eval("campaignname") %>'></asp:TextBox>

og

Public companyname As TextBox = New TextBox
Public campaignname As TextBox = New TextBox


sidstenævnte er tomme.
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