Avatar billede charlie2000 Nybegynder
04. maj 2006 - 21:44 Der er 19 kommentarer og
1 løsning

Ændring af ConnectionString under runtime

hejsa

jeg har et problem. jeg kan ikke finde ud af hvordan jeg ændre ConnectionString på et DataSet i runtime.

er der nogen af jer super programmøre der kan fortælle mig hvordan??
Avatar billede innercitydk Nybegynder
04. maj 2006 - 22:01 #1
Jeg forstår ikke helt spørgsmålet!? Du angiver en datasource og fylder dit dataset udfra denne source. Her er et eksempel fra MSDN:

SqlConnection nwindConn = new SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind");

SqlCommand selectCMD = new SqlCommand("SELECT CustomerID, CompanyName FROM Customers", nwindConn);
selectCMD.CommandTimeout = 30;

SqlDataAdapter custDA = new SqlDataAdapter();
custDA.SelectCommand = selectCMD;

nwindConn.Open();

DataSet custDS = new DataSet();
custDA.Fill(custDS, "Customers");

nwindConn.Close();


http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconPopulatingDataSetFromDataAdapter.asp

Vh
Avatar billede innercitydk Nybegynder
04. maj 2006 - 22:14 #2
Hvis du så vil fylde dit dataset med en anden kilde kan du bare gøre følgende

Første opfyldning:

SqlConnection nwindConn = new SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind");

SqlCommand selectCMD = new SqlCommand("SELECT CustomerID, CompanyName FROM Customers", nwindConn);
selectCMD.CommandTimeout = 30;

SqlDataAdapter custDA = new SqlDataAdapter();
custDA.SelectCommand = selectCMD;

nwindConn.Open();

DataSet custDS = new DataSet();
custDA.Fill(custDS, "Customers");

nwindConn.Close();


Anden opfyldning:

selectCMD = new SqlCommand("SELECT et_felt_i_databasen, et_andet_felt_i_databasen FROM Tabel", nwindConn);
selectCMD.CommandTimeout = 30;

custDA = new SqlDataAdapter();
custDA.SelectCommand = selectCMD;

nwindConn.Open();

custDS = new DataSet();
custDA.Fill(custDS, "Tabel");

nwindConn.Close();
Avatar billede charlie2000 Nybegynder
04. maj 2006 - 22:20 #3
jeg prøver lige at forklare lidt mere.

jeg har oprettet en datasource, en bindingsource og en Tableadapter sim er "linket" til et DataGridView. der er defineret en ConnectionString i Designtime, men hvordan laver jeg den om i runtime. Uden at oprette en ny under runtime.
jeg tænkte på en property der kunne ændres måske? eller noget andet?

håber det blev bare lidt forståeligt :-P
Avatar billede innercitydk Nybegynder
04. maj 2006 - 22:33 #4
Du kan lade connectionstring være en variabel der er tilgængelig for andre i klassen ved at gøre den public og ligge den uden for metoden. F.eks:

public partial class Form1 : Form
    {
        public string ConnString = "EtEllerAndet";

//OSV OSV

Så kan du f.eks via et buttonklik ændre den:

private void button1_Click(object sender, EventArgs e)
        {
            ConnString = "NogetAndet";
           
            //OSVOSV


Var det noget i den dur du tænkte på?
Avatar billede charlie2000 Nybegynder
04. maj 2006 - 22:36 #5
ja den er jeg med på. Men hvilken property skal jeg ændre for at ændre den jeg har indsat i designtime og hvor?
Avatar billede innercitydk Nybegynder
04. maj 2006 - 22:40 #6
Jeg ved ikke hvad din form hedder, men tryk på pludset i filbrowseren f.eks. Form1.Designer.cs og fjern den herfra og smid den i constructoren for din form istedet.
Avatar billede innercitydk Nybegynder
04. maj 2006 - 22:40 #7
Indskydelse :) -"Og åben Form1.Designer.cs"
Avatar billede innercitydk Nybegynder
04. maj 2006 - 22:42 #8
Her vil den ligge under "Windows Form Designer generated code"
Avatar billede charlie2000 Nybegynder
04. maj 2006 - 22:49 #9
constructoren for min form? hvor er den?

du må undskylde jeg er lidt noob
Avatar billede innercitydk Nybegynder
04. maj 2006 - 22:53 #10
I din form findes der en kode sektion der hedder det samme som selve formen. F.eks:

public Form1()
        {
            InitializeComponent();
        }

Dette er formens constructor og det er denne kode der køres når formen bliver afviklet.
Avatar billede charlie2000 Nybegynder
04. maj 2006 - 23:21 #11
bare lige for at være helt sikker. det var DatasSource, BindingSource og TableAdapter der skulle flyttes over i constructoren ik?
Avatar billede innercitydk Nybegynder
05. maj 2006 - 00:10 #12
Jeg ville flytte alt der har med udfyldning af datasettet over i constructoren, og variabler der skal være tilgængelige for andre i klassen uden for constructoren..

Vh
Avatar billede innercitydk Nybegynder
05. maj 2006 - 00:10 #13
men ja
Avatar billede charlie2000 Nybegynder
05. maj 2006 - 00:12 #14
ok tak.

det er vist også tid til at gå i seng nu. forsætter imorgen.

tak for hjælpen:-D
Godnat
Avatar billede innercitydk Nybegynder
13. maj 2006 - 12:37 #15
Er du kommet videre med det?
Avatar billede charlie2000 Nybegynder
13. maj 2006 - 14:17 #16
hej igen

nej jeg er ikke kommet videre med det. men jeg fand en anden løsning på mit problem.
hvis du smider et svar får du lige nogle point :-D
Avatar billede innercitydk Nybegynder
15. maj 2006 - 12:32 #17
Bare ok :)
Avatar billede innercitydk Nybegynder
21. maj 2006 - 10:18 #18
Lukker du ikke spørgsmålet? :)
Avatar billede charlie2000 Nybegynder
22. maj 2006 - 15:08 #19
havde helt glemt denne :-P
Avatar billede innercitydk Nybegynder
24. maj 2006 - 17:30 #20
Hehe det kan ske ;)
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