---
title: "db koppling"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/101125-db-koppling"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "pellesvenne"
published: "2004-04-07T15:51:07.000Z"
updated: "2004-04-14T20:51:15.000Z"
replies: 58
views: 1425
page: 1
pages: 3
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/101125-db-koppling"
---

# db koppling

_Sida 1 av 3._

## #1 — pellesvenne, 2004-04-07T15:51Z

hejsan jag har precis börjat med asp.net!
jag undrar om det är bra att inkluderar en db koppling med asp.net? vilket är det bästa sättet? ska man lägga db kopplingen i web.config eller global.asax eller nån annanstans?

Permalänk: https://www.webforum.nu/p/101125

## #2 — Jon, 2004-04-07T15:55Z

web.config är ett mycket bra ställe att lägga den på :)

Permalänk: https://www.webforum.nu/p/1318335

## #3 — pellesvenne, 2004-04-07T16:01Z

läste om en DAL grej man kunde använda är det bra att använda?
hur lägger man db kopplingen i web.config? är det en funktion som man ska göra?

Permalänk: https://www.webforum.nu/p/1318337

## #4 — Jon, 2004-04-07T17:26Z

Ett DAL är en samling klasser med funktionalitet för att hämta data från databaser. Det är bra att använda men tar lite tid att bygga.  Hittar man ett bar exempel eller ett som är fritt att använda är ju det bra men det är ju ännu bättre att bygga själv för att lära sig hur det fungerar.

Men jag rekommenderar dock att börja med något lite mindre om man är nybörjare, som att hämta, lämna och uppdatera lite data från en databas och visa på ett bra sätt i webbläsaren :)

web.config är en helt vanlig textfil i xml-format som du kan redigera i vilken editor som helst. Använder du visual studio.net eller webmatrix är det bara att dubbelklicka på filen som skapas automatiskt vid skapande av nya projekt.
Det du ska lägga till i filen är t.ex denna för en sqlserver (måste modifieras till egna parametrar eller till access eller mysql eller vad man nu använder)

```
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
 <add key="defaultConnectionString" value="Integrated Security=SSPI;Persist Security Info=False;
   User ID=sa;Initial Catalog=northwind;
   Data Source=Datamaskin;Packet Size=4096;
   Workstation ID=Dadtamaskin;" />
		
</appSettings>
<system.web>
... massa settings
</system.web>
</configuration>
```

Du hämtar värdet med:

```
using System.Configuration;
string connStr = ConfigurationSettings.AppSettings["defaultConnectionString"];
```

Permalänk: https://www.webforum.nu/p/1318372

## #5 — pellesvenne, 2004-04-10T18:45Z

> Du hämtar värdet med:
> 
> using System.Configuration;
> string connStr = ConfigurationSettings.AppSettings\["defaultConnectionString"\];

ska man anropa det med c sharp eller?

Permalänk: https://www.webforum.nu/p/1319163

## #6 — Josef, 2004-04-10T18:49Z

DU kan lika gärna hämta det med VB.NET:

```
imports System.Configuration

Dim connStr As String = ConfigurationSettings.AppSettings("defaultConnectionString")
```

Permalänk: https://www.webforum.nu/p/1319165

## #7 — pellesvenne, 2004-04-11T00:54Z

hur kopplar man ihop det?

\<%@ Page Language="vb" %\>
\<%@ import Namespace="System.Data" %\>
\<%@ import Namespace="System.Data.SqlClient" %\>
\<script runat="server"\>

    Function MyQueryMethod() As System.Data.IDataReader
            Dim connectionString As String = "server='(local)'; trusted_connection=true; database='community'"
            Dim dbConnection As System.Data.IDbConnection = New System.Data.SqlClient.SqlConnection(connectionString)
    
            Dim queryString As String = "SELECT \[medlemmar\].\[anvandarnamn\], \[medlemmar\].\[losenord\] FROM \[medlemmar\]"
            Dim dbCommand As System.Data.IDbCommand = New System.Data.SqlClient.SqlCommand
            dbCommand.CommandText = queryString
            dbCommand.Connection = dbConnection
    
            dbConnection.Open
            Dim dataReader As System.Data.IDataReader = dbCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
    
            Return dataReader
        End Function

    
    Sub Login_Click(Src As Object, E As EventArgs)
    
imports System.Configuration

Dim connStr As String = ConfigurationSettings.AppSettings("defaultConnectionString")

    If (från databasen) Then
    
    session("anvandarnamn") = "ja"
    
    response.redirect("login.aspx", true)
    
    Else
    response.redirect("default.aspx", true)
    
    End If
    End Sub

\</script\>

Permalänk: https://www.webforum.nu/p/1319236

## #8 — Josef, 2004-04-11T08:52Z

```
<%@ Page Language="vb" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SqlClient" %>
<%@ import Namespace="System.Configuration" %>
<script runat="server">

Function MyQueryMethod() As System.Data.IDataReader
Dim connectionString As String = ConfigurationSettings.AppSettings("defaultConnectionString")
Dim dbConnection As System.Data.IDbConnection = New System.Data.SqlClient.SqlConnection(connectionString)

Dim queryString As String = "SELECT [medlemmar].[anvandarnamn], [medlemmar].[losenord] FROM [medlemmar]"
Dim dbCommand As System.Data.IDbCommand = New System.Data.SqlClient.SqlCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection

dbConnection.Open
Dim dataReader As System.Data.IDataReader = dbCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection)

Return dataReader
End Function

Sub Login_Click(Src As Object, E As EventArgs)

If (från databasen) Then

session("anvandarnamn") = "ja"

response.redirect("login.aspx", true)

Else
response.redirect("default.aspx", true)

End If
End Sub
</script>
```

Permalänk: https://www.webforum.nu/p/1319277

## #9 — pellesvenne, 2004-04-11T10:13Z

tack hur kontrollerar jag att användarnamn och lösenordet stämmer? 

If (från databasen) Then
end if

Permalänk: https://www.webforum.nu/p/1319305

## #10 — emission, 2004-04-11T13:33Z

Det urvalet ska du göra redan när du frågar databasen

Dim queryString As String = "SELECT \[medlemmar\].\[anvandarnamn\], \[medlemmar\].\[losenord\] FROM \[medlemmar\] WHERE anvandarnamn=@username AND losenord=@password"
Dim dbCommand As System.Data.IDbCommand = New System.Data.SqlClient.SqlCommand
dbCommand.CommandText = queryString
dbCommand.Parameters.Add("@username",SqlDbType.VarChar).Value=**variabel med användarnamnet**
dbCommand.Parameters.Add("@password",SqlDbType.VarChar).Value=**variabel med lösenordet**

if Readern inte returnerar något är inloggningen fel

Permalänk: https://www.webforum.nu/p/1319380

## #11 — pellesvenne, 2004-04-11T13:43Z

**BC30057: Too many arguments to 'Public Overridable Function Add(value As Object) As Integer'.**

```
Function MyQueryMethod() As System.Data.IDataReader
Dim connectionString As String = ConfigurationSettings.AppSettings("defaultConnectionString")
Dim dbConnection As System.Data.IDbConnection = New System.Data.SqlClient.SqlConnection(connectionString)

Dim queryString As String = "SELECT [medlemmar].[anvandarnamn], [medlemmar].[losenord] FROM [medlemmar] WHERE anvandarnamn=@username AND losenord=@password"
Dim dbCommand As System.Data.IDbCommand = New System.Data.SqlClient.SqlCommand
dbCommand.CommandText = queryString
dbCommand.Parameters.Add("@username",SqlDbType.VarChar).Value = request.form("anvandarnamn")
dbCommand.Parameters.Add("@password",SqlDbType.VarChar).Value = request.form("losenord")

dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection

dbConnection.Open
Dim dataReader As System.Data.IDataReader = dbCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection)

Return dataReader
End Function
```

hur kontrollerar jag Readern?

Permalänk: https://www.webforum.nu/p/1319389

## #12 — Josef, 2004-04-11T13:45Z

Men du gör det ju ganska krångligt. Gör istället en *select count* i sql:en. Om du får tillbaka 0 är antingen användarnamnet eller lösenordet fel, får du tillbaka 1 är det korrekt. Om du gör såhär är det bättre att använda .ExecuteScalar() istället för .ExecuteReader() eftersom ExecuteScalar enbart returnerar det första resultatet ur datakällan.

Sedan gör du arbetet 2 ggr när du både "importerar" namnrymderna *(\<%@ import namespace="blabla"%\>)* och använder *System.Data.SqlClient.SqlCommand*. Om du importerar *System.Data.SqlClient* högst upp i koden behöver du ju bara använda *New SqlConnection()*.

Permalänk: https://www.webforum.nu/p/1319393

## #13 — emission, 2004-04-11T13:53Z

hur kontrollerar jag Readern?

if dataReader.Read() then
 'Japp! Något returnerades!
end if

Permalänk: https://www.webforum.nu/p/1319400

## #14 — pellesvenne, 2004-04-11T13:53Z

josef\> sorry jag e newbie! komplicerad för mig! kanske visa koder?

Permalänk: https://www.webforum.nu/p/1319401

## #15 — pellesvenne, 2004-04-11T13:57Z

emission\> **Name 'dataReader' is not declared.**

Permalänk: https://www.webforum.nu/p/1319404

## #16 — Josef, 2004-04-11T14:00Z

```
imports System
imports System.Data
imports System.Data.SqlClient

Function MyQueryMethod() As System.Data.IDataReader

	Dim dbConnection As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("defaultConnectionString"))
	
	Dim queryString As String = "SELECT count [medlemmar].[anvandarnamn], [medlemmar].[losenord] FROM [medlemmar] WHERE anvandarnamn=@username AND losenord=@password"
	Dim dbCommand As SqlCommand = New SqlCommand(querystring, dbConnection)

	dbCommand.Parameters.Add("@username",SqlDbType.VarChar).Value = request.form("anvandarnamn").ToString()
	dbCommand.Parameters.Add("@password",SqlDbType.VarChar).Value = request.form("losenord").ToString()

	dbConnection.Open()
	Dim num As Integer = dbCommand.ExecuteScalar()
	dbConnection.Close()

	Return num
End Function
```

Och du kollar med:

```
If num = 1 Then
     ' Ja, inloggningen lyckades.
Else
     'Nej, inloggningen misslyckades
End If
```

Permalänk: https://www.webforum.nu/p/1319406

## #17 — pellesvenne, 2004-04-11T14:11Z

tack funkar!

Permalänk: https://www.webforum.nu/p/1319410

## #18 — pellesvenne, 2004-04-11T19:09Z

hur gör jag om jag vill uppdatera en post sammtidigt?

Permalänk: https://www.webforum.nu/p/1319596

## #19 — Josef, 2004-04-12T15:57Z

Antingen lägger du till ett till kommando i sql-strängen. Med ett ";" imellan. Eller så skapar du ett till SqlCommand-object (med samma connection), och kör ett .ExecuteNonQuery() på den nya sql-strängen.

Ps. Markera gärna det hjälpande inlägget ("Acceptera inlägget som slutgiltigt svar").

Permalänk: https://www.webforum.nu/p/1319966

## #20 — pellesvenne, 2004-04-12T20:24Z

jag gjorde om själva inloggningen från funktion till onclick metoden är det bättre så eller? och hur uppdaterar jag då databasen?

```
Private Sub loggain_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles loggain.Click

        Dim dbConnection As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("connection"))

        Dim queryString As String = "SELECT Count(ID) from medlemmar WHERE anvandarnamn=@anvandarnamn AND losenord=@losenord"
        Dim dbCommand As SqlCommand = New SqlCommand(queryString, dbConnection)

        dbCommand.Parameters.Add("@anvandarnamn", SqlDbType.NVarChar, 15).Value = anvandarnamn.Text
        dbCommand.Parameters.Add("@losenord", SqlDbType.NVarChar, 15).Value = losenord.Text

        dbConnection.Open()
        Dim num As Integer = dbCommand.ExecuteScalar()
        dbConnection.Close()

        If num = 1 Then
[b]Här ska det Uppdateras Online = true[/b]
            Session("anvandarnamn") = anvandarnamn.Text
            'login.Text = "Rätt"
        Else
            'login.Text = "Fel"
        End If

    End Sub
```

Permalänk: https://www.webforum.nu/p/1320117

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/101125-db-koppling  
Nästa sida: https://www.webforum.nu/amne/dotnet/101125-db-koppling/page2.md
