Avatar billede Slettet bruger
20. august 2012 - 17:04 Der er 22 kommentarer og
1 løsning

Forbindelse til database

Hej
Jeg sidder her og vil lave en forbindelse til en database jeg har oprettet i Access, men det lykkedes ikke rigtigt.
Jeg fandt på nettet en forklaring, hvor man -Meget let - forbandt
databasen Northwind, men den hedder jo Northwind.sdf.
Den database jeg vil forbinde hedder xxxx.mdb
Meget gerne en forklaring som selv jeg kan forstå, da jeg bestemt ikke er helt dus med dette program endnu.
M.v.h.
Ole
Avatar billede arne_v Ekspert
20. august 2012 - 17:09 #1
Simpelt eksempel:

using System;
using System.Data.OleDb;

public class MainClass
{
    public static void Main(string[] args)
    {
        //OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Databases\MSAccess\Test.mdb");
        OleDbConnection con = new OleDbConnection("Provider=SQLOLEDB;Data Source=ARNEPC3;Initial Catalog=Test;Integrated Security=SSPI;");
        con.Open();
        OleDbCommand cmd = new OleDbCommand("SELECT * FROM T1", con);
        OleDbDataReader rdr = cmd.ExecuteReader();
        while(rdr.Read()) {
            int f1 = (int)rdr[0];
            string f2 = (string)rdr[1];
            Console.WriteLine(f1 + " " + f2);
        }
        con.Close();
    }
}
Avatar billede Slettet bruger
20. august 2012 - 17:29 #2
Arne_v
Ja arne det er sikket rigtigt, at det er et simpelt eksempel, men men, alt er jo simpelt, hvis man kan det.
Jeg har ændret, således at jeg troede, at det pegede på min database, men jeg fik fejl.
Mit sr nu sådan ud.


using System;
using System.Data.OleDb;

public class MainClass
{
    public static void Main(string[] args)
    {
        //OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MusikDatabase\Musik.mdb");
        OleDbConnection con = new OleDbConnection("Provider=SQLOLEDB;Data Source=ARNEPC3;Initial Catalog=Test;Integrated Security=SSPI;");
        con.Open();
        OleDbCommand cmd = new OleDbCommand("SELECT * FROM Musik", con);
        OleDbDataReader rdr = cmd.ExecuteReader();
        while(rdr.Read()) {
            int f1 = (int)rdr[0];
            string f2 = (string)rdr[1];
            Console.WriteLine(f1 + " " + f2);
        }
        con.Close();
    }
}

Den her fejler, jeg mener stien er rigtig:
m.v.h.
Ole
Avatar billede arne_v Ekspert
20. august 2012 - 18:24 #3
Fjern // foran Access delen og slet SQLServer delen.
Avatar billede arne_v Ekspert
20. august 2012 - 18:24 #4
//OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MusikDatabase\Musik.mdb");
        OleDbConnection con = new OleDbConnection("Provider=SQLOLEDB;Data Source=ARNEPC3;Initial Catalog=Test;Integrated Security=SSPI;");

->

        OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MusikDatabase\Musik.mdb");
Avatar billede arne_v Ekspert
20. august 2012 - 18:25 #5
int f1 = (int)rdr[0];
            string f2 = (string)rdr[1];

skal nok ogsaa aendres til dine felter
Avatar billede Slettet bruger
20. august 2012 - 22:48 #6
Hej arne_v
Du skriverint f1 = (int)rdr[0];
            string f2 = (string)rdr[1];

skal nok ogsaa aendres til dine felter
Jeg har ingen talfelter, så jeg fjernede linien f1, og rettede
linien f2 til string f1 = (string)spillested (felt i databasen)r4dr(0).
Men nej.

http://msdn.microsoft.com/en-us/library/bb655884(v=vs.90).aspx

Den anvisning jeg fandt var denne adr. og den forklaring var lige til at gå til, så jeg troede, at der evt. var en sådan mulighed m.h.t. mdb database
Er der mulighed for at konvetere mdb til sdf.
m.v.h.
Ole
Avatar billede arne_v Ekspert
21. august 2012 - 04:00 #7
syntaxen er:

type variabelnavn = (type)readervariabel[feltnummerstartendemednul];
Avatar billede Slettet bruger
21. august 2012 - 10:07 #8
Hej igen
Det vil ikke køre, men jeg kan nu se, at der tilsyneadende er noget med Main, da den ser sådan ud på min computer:

public static void Main(string[] args)

og der er en lille streg under Main

m.v.h.
Ole
Avatar billede arne_v Ekspert
22. august 2012 - 03:19 #9
kan du poste lidt kode som viser hvor Main er placeret?
Avatar billede arne_v Ekspert
22. august 2012 - 03:19 #10
og hvilken projekt type har du valgt?
Avatar billede Slettet bruger
22. august 2012 - 16:49 #11
Hej arne_v

Jeg sender den kode:
using System;
using System.Data.OleDb;

    public class MainClass
{
    public static void Main(string[] args)
    {
        OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MusikDatabase\Musik.mdb");
  //    OleDbConnection con = new OleDbConnection("Provider=SQLOLEDB;Data Source=ARNEPC3;Initial Catalog=Test;Integrated Security=SSPI;");
        con.Open();
        OleDbCommand cmd = new OleDbCommand("SELECT * FROM Musik", con);
        OleDbDataReader rdr = cmd.ExecuteReader();
        while(rdr.Read())
        {
  //        int f1 = (int)rdr[0];
          string spillested = (string)rdr[0];
        Console.WriteLine(spillested + " " );
        }
        con.Close();
    }
}

Jeg får ingen forbindelse med det her, jeg har efter bedste evne brugt det du har sendt.
m.v.h.
Ole
Avatar billede arne_v Ekspert
23. august 2012 - 04:42 #12
Det er legalt C#.

Hvilken fejl faar du?

Og hvilken projekt type har du oprettet?
Avatar billede Slettet bruger
24. august 2012 - 17:00 #13
Hej arne_v
Nu vil jeg forsøge at forklare.
Jeg har oprettet en form applikation og der har jeg skrevet den tekst.
Når jeg forsøger at køre denne tekst, for at den skulle kunne få fat i databasen, skriver programmet, at der er build error, det er helt den sædvanelige fejlmeddelelse.
Men i dag sag jeg og tossede lidt, og jeg bemærkede de her linier
under selve den aktive skærm.


------ Build started: Project: NyMusik, Configuration: Debug x86 ------
warning CS1668: Invalid search path 'C:\Programmer\Microsoft Visual Studio\VC98\lib' specified in 'LIB environment variable' -- 'Den angivne sti blev ikke fundet. '

Vil det her sige, at der er noget i Visual 2010 som jeg mangler.
Til venstre for den skærm jeg skriver koden i er der en strimmel med Data sources, denne del har jeg ikke benyttet, er det her fejlen ligger.
Håber du har toldmodighed
M.v.h.
Ole
Avatar billede arne_v Ekspert
27. august 2012 - 04:49 #14
Med en win form app skal du ikke have en main men en button click event og ikke skrive til console men gemme i en textbox eller lignende.
Avatar billede arne_v Ekspert
27. august 2012 - 04:50 #15
Den fejl lyder meget mystisk.

VC98 er Visual Studio 6.0 fra 1998.
Avatar billede Slettet bruger
27. august 2012 - 09:02 #16
Hej arne
Jeg er kommet lidt videre, du må ikke lige nu bruge tid på det her, jeg har meget travlt her til morgen, men jeg skal nok skrive mere når der er tid.
m.v.h.
Ole
Avatar billede Slettet bruger
29. august 2012 - 09:01 #17
Hej arne
Du må undskylde mit korte svar, men jeg har lige fået 8 nye vinduer og en ny dør jeg skal have sat i huset, så jeg  er lidt fraværende her nogle dage endnu.
m.v.h.
Ole
Avatar billede arne_v Ekspert
29. august 2012 - 14:45 #18
Jeg kender det.

Min kone har lige koebt 32 kasser gulv som hun forventer skal laegges.
Avatar billede Slettet bruger
16. september 2012 - 22:15 #19
Hej arne_v
Jeg mener ikke, at der er ret mange, undtagen mig, der har glæde af denne tråd, og derfor vil jeg spørge dig, om du evt. mener, at vi kunne fortsætte lidt mere privat, hvis ja, så står min private emailadr. under min profil, og du kunne sende mig en mail.
Hvis du ikke ønsker dette, fortsætter vi bare her.
m.v.h.
Ole
Avatar billede arne_v Ekspert
16. september 2012 - 23:21 #20
Lad os fortsaette her
Avatar billede Slettet bruger
29. september 2012 - 21:46 #21
Hej
Ja der er gået lang tid, og vi er ikke færdige.
Vinduerne gik fint, det er virkeligt dejligt, men da det var på plads ---hov---, der var lige en skjult rørskade, ved kontrol, løb der 24 l fjernvarmevand ud i timen.
Entreparketgulv er savet væk, betongulv er banket væk, bryggers klinkegulv er banket væk.
Men på mandag får vi lagt nyt parketgulv, så jeg håber, at jeg snart kan være aktiv igen.
m.v.h.
Ole
Avatar billede Slettet bruger
12. december 2012 - 22:26 #22
Hej her igen!
Nej nu opgiver jeg det her, og jeg fortsætter med at benytte
min Access database.
Arne vil du ikke nok skrive et eller andet som et svar, så
jeg kan give dig de point, du har da forsøgt at give mig et
skub.
Jeg har brugt meget tid på det her, og det ender med det samme
hele tiden.
Lige til sidst, kan man finde tabellerne i en database
oprettet i C#.
m.v.h.
Ole
Avatar billede Slettet bruger
12. januar 2013 - 10:45 #23
Hej
Ja så må jeg selv lave et svar for at slutte denne tråd.
mvh.
Ole
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



IT-JOB

Sparekassen Danmark

Systemudvikler

Unik System Design A/S

Head of Internal IT

Metro Service A/S

Erfaren IT-supporter

Udviklings- og Forenklingsstyrelsen

Scrum Master