Avatar billede karsten_larsen Praktikant
29. marts 2006 - 14:10 Der er 12 kommentarer og
2 løsninger

Forbindelse til database via storeprocedure

Hvordan får jeg SqlDataSource1 til at indgå i nedenstående kode i stedet for SqlCommand1 og SqlConnection1

Protected Function VerifyUser(ByVal UserName As String, ByVal UserPassword As String) As Boolean
Dim sdr As System.Data.SqlClient.SqlDataReader
Dim bReturn As Boolean
SqlCommand1.Parameters("@UserName").Value = UserName
SqlConnection1.SelectParameters()
sdr = SqlCommand1.ExecuteReader()
While sdr.Read
If sdr("password") = UserPassword Then
  bReturn = True
End If
End While
Return bReturn
End Function

når SqlConnection1 og SqlCommand1 ikke kan genereres automatisk i vs2005?

?:-) karsten_larsen
Avatar billede arne_v Ekspert
29. marts 2006 - 14:37 #1
du kan vel skrive dem selv !?  :-)
Avatar billede karsten_larsen Praktikant
29. marts 2006 - 17:39 #2
tja - det fungerer ikke helt. Prøv at se her

    Protected Function VerifyUser(ByVal UserName As String, ByVal UserPassword As String) As Boolean
        Dim Conn As New SqlConnection()
        Dim myCommand As New SqlCommand("demoLogin", Conn)
        Dim sdr As System.Data.SqlClient.SqlDataReader
        Dim bReturn As Boolean

        myCommand.Parameters("@UserName").Value = UserName
        myCommand.Parameters("@Password").Value = UserPassword

        sdr = myCommand.ExecuteReader()
        While sdr.Read()
            If sdr("password") = UserPassword Then
                bReturn = True
            End If
        End While
        Return bReturn
    End Function

Jeg får dette som fejl:

An SqlParameter with ParameterName '@UserName' is not contained by this SqlParameterCollection.
Avatar billede arne_v Ekspert
29. marts 2006 - 17:45 #3
ja

jeg kan ikke se

myCommand.Parameters.Add("@UserName", SqlDbType.VarChar, 32)
myCommand.Parameters.Add("@Password", SqlDbType.VarChar, 32)
Avatar billede dr_chaos Nybegynder
29. marts 2006 - 18:18 #4
hvor får du den funktion fra altså VerifyUser ?

kommer username og userpassword fra textbokse ?
Hvis det er til login vil jeg anbefale dig at benytte den indbyggede login kontrol.
Avatar billede karsten_larsen Praktikant
29. marts 2006 - 23:45 #5
hmm - det vil ikke helt som jeg vil!

dr_chaos ->

VerifyUser kaldes fra btnLogin_click og username og userpassword kommer fra to control´s.

  Protected Sub btnLogin_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLogin.Click
        Dim bReturn As Boolean
        bReturn = VerifyUser(txtUserName.Text, txtUserPassword.Text)
        If bReturn = True Then
            Dim ticket As FormsAuthenticationTicket = New FormsAuthenticationTicket(txtUserName.Text, False, 5000)
            FormsAuthentication.RedirectFromLoginPage(txtUserName.Text, False)

        Else
            lblFeedback.Text = "Brugernavn og Password stemmer ikke overens"
        End If
    End Sub

The ConnectionString property has not been initialized.

Jeg har kigget på den indbygget login funktion (2.0), men vil gerne kunne det lave det fra bunden af.

Jeg får følgende fejl: The ConnectionString property has not been initialized.

og min funktion ser sådan ud efterhånden:


    Protected Function VerifyUser(ByVal UserName As String, ByVal UserPassword As String) As Boolean
        Dim Conn As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("ConnDemo"))
        Dim myCommand As New SqlCommand("spLogin", Conn)
        Dim sdr As System.Data.SqlClient.SqlDataReader
        Dim bReturn As Boolean


        myCommand.Parameters.Add("@UserName", SqlDbType.VarChar, 32)
        myCommand.Parameters.Add("@Password", SqlDbType.VarChar, 32)

        Conn.Open()

        sdr = myCommand.ExecuteReader()
        While sdr.Read()
            If sdr("password") = UserPassword Then
                bReturn = True
            End If
        End While
        Conn.Close()
        Return bReturn
    End Function

??karsten_larsen
Avatar billede arne_v Ekspert
30. marts 2006 - 01:29 #6
lyder som om ConfigurationSettings.AppSettings("ConnDemo") returnerer null
fordi den setting ikke eksisterer
Avatar billede karsten_larsen Praktikant
30. marts 2006 - 08:30 #7
hmm - den findes i webfig, så det burde da være i orden

<configuration>
    <appSettings/>
    <connectionStrings>
        <add name="ConnDemo" connectionString="Data Source=WORKROOM;Initial Catalog=demo;Integrated Security=True" providerName="System.Data.SqlClient"/>
    </connectionStrings>
    <system.web>
        <compilation debug="true" strict="false" explicit="true"/>
        <pages>
            <namespaces>
                <clear/>
                <add namespace="System"/>
                <add namespace="System.Collections"/>
                <add namespace="System.Collections.Specialized"/>
                <add namespace="System.Configuration"/>
                <add namespace="System.Text"/>
                <add namespace="System.Text.RegularExpressions"/>
                <add namespace="System.Web"/>
                <add namespace="System.Web.Caching"/>
                <add namespace="System.Web.SessionState"/>
                <add namespace="System.Web.Security"/>
                <add namespace="System.Web.Profile"/>
                <add namespace="System.Web.UI"/>
                <add namespace="System.Web.UI.WebControls"/>
                <add namespace="System.Web.UI.WebControls.WebParts"/>
                <add namespace="System.Web.UI.HtmlControls"/>
            </namespaces>
        </pages>

    <authentication mode="Forms">
      <forms loginUrl="login.aspx"/>
    </authentication>
    <authorization>
      <deny users="?"/>
    </authorization>

    </system.web>
</configuration>
Avatar billede karsten_larsen Praktikant
30. marts 2006 - 10:59 #8
hmmm - kan det virkeligt være så bøvlet?

    Nu er forbindelsen der, men så kommer fejlen?

    Procedure 'StoredProcedure1' expects parameter '@UserName', which was not supplied.

    Funktionen ser således ud nu:

    Protected Function VerifyUser(ByVal UserName As String, ByVal UserPassword As String) As Boolean
        Dim Conn = New System.Data.SqlClient.SqlConnection
        Dim Command = New System.Data.SqlClient.SqlCommand

        'Conn
        Conn.ConnectionString = "workstation id=WORKROOM;packet size=4096;integrated security=SSPI;data source=WOR" & _
        "KROOM;persist security info=False;initial catalog=demo"

        ' Command
        Command.CommandText = "dbo.[StoredProcedure1]"
        Command.CommandType = System.Data.CommandType.StoredProcedure
        Command.Connection = Conn

        Command.Parameters.Add(("@UserName"), System.Data.SqlDbType.VarChar, 50)
        Command.Parameters.Add(("@UserPassword"), System.Data.SqlDbType.VarChar, 50)

        Conn.Open()

        Dim sdr As SqlDataReader = Command.ExecuteReader()
        Dim bReturn As Boolean

        While (sdr.Read())
            If sdr("UserPassword") = UserPassword Then
                bReturn = True
            End If
        End While

        sdr = Nothing
        Command.Dispose()
        Conn.Close()
        Conn.Dispose()

        Return bReturn
    End Function
Avatar billede dr_chaos Nybegynder
30. marts 2006 - 16:52 #9
prøv lige med

        Command.Parameters.Add(new SqlParameter("@UserName", System.Data.SqlDbType.VarChar, 50)))
        Command.Parameters.Add(new SqlParameter(("@UserPassword", System.Data.SqlDbType.VarChar, 50))


Kan tage fejl skal det lige siges.
Avatar billede karsten_larsen Praktikant
30. marts 2006 - 18:24 #10
næeh det var samme fejl, med markering af linien
Dim sdr As SqlDataReader = Command.ExecuteReader()

???:-) karsten_larsen
Avatar billede dr_chaos Nybegynder
30. marts 2006 - 18:26 #11
rettelse:
Command.Parameters.Add(new SqlParameter("@UserName", System.Data.SqlDbType.VarChar, 50))
        Command.Parameters.Add(new SqlParameter("@UserPassword", System.Data.SqlDbType.VarChar, 50))


hvordan ser din connectionstring ud:
Avatar billede karsten_larsen Praktikant
30. marts 2006 - 18:41 #12
he he så lykkedes det!


        Dim parameterItemId As New SqlParameter("@UserName", System.Data.SqlDbType.VarChar, 50)
        parameterItemId.Value = UserName
        Command.Parameters.Add(parameterItemId)

        Dim parameterItemId2 As New SqlParameter("@UserPassword", System.Data.SqlDbType.VarChar, 50)
        parameterItemId2.Value = UserPassword
        Command.Parameters.Add(parameterItemId2)

Nåeh men vil I lavet et svar begge for supporten undervejs!

:-)) karsten_larsen
Avatar billede dr_chaos Nybegynder
30. marts 2006 - 18:42 #13
svar :)
Avatar billede arne_v Ekspert
30. marts 2006 - 19:19 #14
ok
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