---
title: "Vad tror ni är smartast!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/47476-vad-tror-ni-är-smartast/page2"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Nickemannen"
published: "2002-07-08T11:22:44.000Z"
updated: "2002-11-16T22:21:14.000Z"
replies: 92
views: 2408
page: 2
pages: 5
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/47476-vad-tror-ni-är-smartast"
---

# Vad tror ni är smartast!

_Sida 2 av 5._

## #21 — Nickemannen, 2002-07-08T12:28Z

redigerat!!!!

va inget

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

## #22 — SPiN, 2002-07-08T12:28Z

PatrikB, man skickar in användarnamn, lösenord, databas och servernamn som parametrar till sin klass. :)

kristoffer\> Det ser ok ut, men utveckla klassen mer, med en metod ( T.ex. konstruktorn ) som skapar en instans av en SqlConnection som är en privat variabel för klassen, som du sedan kan använda i andra metoder.
T.ex:

```
using System;
using System.Data;
using System.Data.SqlClient;
using System.Web;

namespace blabla
{
	public class Database
	{
                private SqlConnection myConnection;

                public Database( String server, String db, String user, String pwd ) {
                        this.myConnection = new SqlConnection( "server=" + server + "; database=" + db + "; uid=" + user + "; pwd=" + pwd + ";" );
                }

		public static DataSet GetDataSet(string Sql)
		{
			DataSet DS = new DataSet();
			
			SqlDataAdapter myDataAdapter = new SqlDataAdapter(Sql, this.myConnection);
			DataSet myDataSet = new DataSet();
			myDataAdapter.Fill(myDataSet);
			return myDataSet;
		}

	}
}
```

Typ. Sen kan du utveckla den mer för att göra klassen ännu mer användbar. :)

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

## #23 — PatrikB, 2002-07-08T12:29Z

:o

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

## #24 — kristoffer, 2002-07-08T12:47Z

Uh, varför hittas inte Application-variabeln?

```
"The name 'Application' does not exist in the class or namespace 'myProject.myFile'"
```

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

## #25 — renholm, 2002-07-08T12:49Z

ett annat förslag på vart man bör lägga connectionstringen är i web.config. Exempel

web.config:

```
<configuration>
    <appSettings>
        <add key="ConnectionString" value="server=****;database=****; user id=***; password=***" />
    </appSettings>
</configuration>
```

i komponenten eller aspx sidan:

```
dim connstring as string = ConfigurationSettings.AppSettings("connectionString")
```

importera System.Configuration för att detta ska funka.

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

## #26 — kristoffer, 2002-07-08T12:57Z

Vad skall jag importera för att Application-variabeln skall híttas?

SPiN: GetDataSet(string Sql) skall inte vara statisk, väl? :)

renholm: 

> As web.config is a text file, consider it compromisable. While no-one has
> compromised a .NET application yet, paranoia is a good thing, considering
> past history.

<http://www.dotnet247.com/247reference/msgs/11/58486.aspx>

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

## #27 — renholm, 2002-07-08T13:06Z

huhu, så fånigt :)
tänkte ni ville slippa kompilera om koden om ni byter DB eller liknande.

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

## #28 — kristoffer, 2002-07-08T13:08Z

Vad skall jag importera för att Application-variabeln skall híttas?

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

## #29 — renholm, 2002-07-08T13:14Z

System.Web känns rätt bra, innehåller HttpApplication och låter som det du vill ha.

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

## #30 — kristoffer, 2002-07-08T13:17Z

Det gör jag redan.

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

## #31 — kristoffer, 2002-07-08T13:46Z

Nu funkar det:

HttpContext.Current.Application\["strConn"\].ToString()

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

## #32 — SPiN, 2002-07-08T18:03Z

Självklart ska den ( GetDataSet ) inte vara statisk.

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

## #33 — renholm, 2002-07-08T20:09Z

man skulle kunna kryptera connection stringen om man vill ha den i web.config, så att den inte är läsbar i fall någon skulle komma över filen. Men ni vet väl att web.config är skyddad så att ingen kan komma åt den över webben.

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

## #34 — kristoffer, 2002-07-08T20:25Z

Kryptera hur?

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

## #35 — SPiN, 2002-07-08T21:46Z

PatrikB\> :r
Jag såg inte att du hade givit ett liknande exempel som jag hade gjort! Ledsen för det, läste inte igenom hela sidan innan jag skrev. :)

Om man ska lägga in strängen i web.config så blir man ju låst till den, och man förlorar en hel del av det dynamiska som .NET står för. Precis som PatrikB sa om att man inte ska lagra strängen i en klass. Man bygger upp den dynamiskt istället.

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

## #36 — renholm, 2002-07-08T21:47Z

hum, igenom att använda System.Security.Cryptography, men vet inte om det är möjligt ännu, har inte hunnit sätta mig in i det.

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

## #37 — renholm, 2002-07-08T21:50Z

SPiN, visst kan man lägga det i en class, men då sak du in o kompilera om denna class så fort du ändrar din connectionstring eller hur? eller har jag missat något i ert resonemang? det bästa vore igentligen att ha egna config filer som är xml baserade och som t.ex inte ligger i rooten, de kan innehålla connectinString och andra inställningar, det ända som behövs göra om man ändra connstring är att ändra i den filen så kommer ändringen gå igenom genast eftersom varjegång data classen man skapat körs hämtar den från vår egna config.

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

## #38 — SPiN, 2002-07-08T21:59Z

> SPiN, visst kan man lägga det i en class, men då sak du in o kompilera om denna class så fort du ändrar din connectionstring eller hur? eller har jag missat något i ert resonemang?

Jäpp, du har missat hur jag menar. :)
Man behöver inte kompilera om.

Studera följande:

```
namespace blabla
{
	public class Database
	{
                private SqlConnection myConnection;

                public Database( String server, String db, String user, String pwd ) {
                        this.myConnection = new SqlConnection( "server=" + server + "; database=" + db + "; uid=" + user + "; pwd=" + pwd + ";" );
                }
```

Till konstruktorn skickas de värden som behövs för att bygga upp strängen, alltså server, databas, användare och lösenord. Den byggs sedan upp och skickas som argument till konstruktorn för SqlConnection som är en klassvariabel som kan/ska användas av andra metoder för att hämta information från databasen.
Du anropar så här:

```
Database db = new Database( "localhost", "minDatabas", "su", "whatever" );
```

Strängen blir då som följer:

```
server=localhost; database=minDatabas; uid=su; pwd=whatever;
```

Dynamiskt! :)

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

## #39 — PatrikB, 2002-07-09T07:15Z

> SPiN, visst kan man lägga det i en class......

Enligt mig "kan" man inte lägga conn-strängen hårdkodad i en class. Det skulle medföra att just denna klass endast kan arbeta mot en applikation/databas. Vitsen är ju att denna "super data klass" ska kunna återanvändas i andra applikationer på samma maskin och då måste conn-strängen kunna byggas dynamiskt, annars skulle man behöva kompilera flera stycken likadan klasser vilket är slöseri

SPiN\> No hard feelings

cya,
PatrikB

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

## #40 — renholm, 2002-07-09T07:34Z

SPiN menar ungefär på samma sätt, att man via konstruktorn får connecting stringen när man skapar objektet,

```
Database db = new Database(getSetting("connectingString"));
```

jag tänkte att man har t.ex flera olika moduler som har olika datakällor och inställningar, då är det vettigt att ha en config fil för varje modul man har. Det är det jag menade med mitt sista inlägg. 

Men undrar vart du tänker ha denna sträng:

```
Database db = new Database( "localhost", "minDatabas", "su", "whatever" );
```

Menar du att ha den i .aspx sidan? Om man kör Visual Studio .NET skapas codebehind och som då måste kompileras om när man vill ändra connecting stringen. Därför menar jag att det är bättre att när man skickar connecting stringen till konstruktorn så hämtar man den från en vanlig xml fil.

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/47476-vad-tror-ni-är-smartast/page2  
Föregående sida: https://www.webforum.nu/amne/dotnet/47476-vad-tror-ni-är-smartast.md  
Nästa sida: https://www.webforum.nu/amne/dotnet/47476-vad-tror-ni-är-smartast/page3.md
