Avatar billede flvind Nybegynder
02. marts 2006 - 16:20 Der er 24 kommentarer og
1 løsning

Fejlmeddelelse i vs 2005

Hej
Jeg får følgende fejl når jeg forsøger at køre min kode. Fejlen kommer når jeg forsøger at skabe kontakten til min sql database. Jeg benytter vs 2005.

Når fejlen kommer makere den koden markeret med *** i følgende kode.
SqlConnection sqlConnection1 = new SqlConnection(); ***
sqlConnection1.ConnectionString = "Data Source=FLEMSE;Initial Catalog=Tourhelp;Integrated Security=True";

Fejlen der kommer siger følgende
A first chance exception of type 'System.TypeInitializationException' occurred in System.Data.dll

NOgen der kan hjælpe mig
Avatar billede innercitydk Nybegynder
02. marts 2006 - 16:39 #1
Ikke for at spørge dumt, men det er en Microsoft SQL server du bruger ik?
Avatar billede flvind Nybegynder
02. marts 2006 - 16:42 #2
jo det er det
Avatar billede innercitydk Nybegynder
02. marts 2006 - 16:42 #3
Prøv eventuelt at smide en try/catch på åbningen af databasen.

try
{
  // åbning af databasen, osv..
}
catch(Exception ex)
{
  MessageBox.Show(ex.ToString());
}
Avatar billede flvind Nybegynder
02. marts 2006 - 16:44 #4
nu spørger jeg lige dumt.

Mit program hedder design.exe og hvis jeg så er kommet til at oprette en xml fil der hedder design.exe.config vil den så altid hente de informationer der står i denne fil?
Avatar billede innercitydk Nybegynder
02. marts 2006 - 16:54 #5
Det ved jeg desværre ikke rigtig noget om :)
Avatar billede flvind Nybegynder
02. marts 2006 - 16:54 #6
helt i orden
har du godt styr på try catct?
Avatar billede flvind Nybegynder
02. marts 2006 - 16:55 #7
håber du ved hvad jeg mener.

det kører ikke helt for mig ;)
Avatar billede innercitydk Nybegynder
02. marts 2006 - 16:58 #8
ja det har jeg
Avatar billede flvind Nybegynder
02. marts 2006 - 17:02 #9
hvordan laver jeg en try catch på min database således at den skriver at databasen ikke kan findes hvis der ikke kan oprettets kontakt?

min kode ser således ud
----kode start   
public DataSet butikDataSet1()
{
    //kontakt databasen og hent det relevante data
      try
      {
      sqlConnection1 = new SqlConnection();
      sqlConnection1.ConnectionString = "Data Source=FLEMSE;Initial Catalog=Tourhelp;Integrated Security=True";
      sqlConnection1.Open();
        }

      catch(Exception xp)
    {
        //MessageBox.Show(xp.Message);
    }
    SqlCommand myCommand = new SqlCommand();
    myCommand.CommandText = "SELECT * FROM butikker";
    myCommand.CommandType = CommandType.Text;
    butikDataSet = new DataSet();
   
    sqlDataAdapter1 = new SqlDataAdapter();
    sqlDataAdapter1.SelectCommand = myCommand;
    sqlDataAdapter1.SelectCommand.Connection = new SqlConnection();
    sqlDataAdapter1.SelectCommand.Connection.ConnectionString = "workstation id=FLEMSE;packet size=4096;integrated security=SSPI;data source=FLEMSE;persist security info=False;initial catalog=Tourhelp";
    sqlDataAdapter1.Fill(butikDataSet);
    sqlDataAdapter1.TableMappings.AddRange(new System.Data.Common.DataTableMapping[]
                                                {
                                                    new System.Data.Common.DataTableMapping("Table", "butikker", new System.Data.Common.DataColumnMapping[]
                                                                {
                                                                    new System.Data.Common.DataColumnMapping("ButikId", "ButikId"),
                                                                    new System.Data.Common.DataColumnMapping("Navn", "Navn"),
                                                                    new System.Data.Common.DataColumnMapping("Adresse", "Adresse"),
                                                                    new System.Data.Common.DataColumnMapping("By", "By"),
                                                                    new System.Data.Common.DataColumnMapping("Postnummer", "Postnummer"),
                                                                    new System.Data.Common.DataColumnMapping("Telefon", "Telefon"),
                                                                    new System.Data.Common.DataColumnMapping("Beskrivelse", "Beskrivelse")})});
       
       
       
    //    sqlDataAdapter1.SelectCommand.CommandText(SELECT navn) FROM butikker);
           
        //til sidste returneres et dataset.
        return butikData.butikDataSet;
    }
----- kode slut -----

Håber ikke at det er for uoverskueligt
Avatar billede innercitydk Nybegynder
02. marts 2006 - 17:03 #10
Alt kode der er skrevet inde i try blokken køres, og hvis der sker en fejl eksekveres catch blokken. Hvis der ikke havde været en try catch lukker programmet bare. Ved at skrive catch(Exception ex) og så udskrive den i blokken "fanges" fejlmeddelelsen.
Avatar billede flvind Nybegynder
02. marts 2006 - 17:05 #11
det vil sige at mit sqlconnection er cirka rigtig?
Avatar billede innercitydk Nybegynder
02. marts 2006 - 17:08 #12
Du bliver nød til at pakke hele koden ind i try ellers fejler giver koden udenfor try blokken en fejl. Den fejl der opstår bliver udskrevet i msg boksen:

public DataSet butikDataSet1()
{
    //kontakt databasen og hent det relevante data
      try
      {
      sqlConnection1 = new SqlConnection();
      sqlConnection1.ConnectionString = "Data Source=FLEMSE;Initial Catalog=Tourhelp;Integrated Security=True";
      sqlConnection1.Open();
       
    SqlCommand myCommand = new SqlCommand();
    myCommand.CommandText = "SELECT * FROM butikker";
    myCommand.CommandType = CommandType.Text;
    butikDataSet = new DataSet();
   
    sqlDataAdapter1 = new SqlDataAdapter();
    sqlDataAdapter1.SelectCommand = myCommand;
    sqlDataAdapter1.SelectCommand.Connection = new SqlConnection();
    sqlDataAdapter1.SelectCommand.Connection.ConnectionString = "workstation id=FLEMSE;packet size=4096;integrated security=SSPI;data source=FLEMSE;persist security info=False;initial catalog=Tourhelp";
    sqlDataAdapter1.Fill(butikDataSet);
    sqlDataAdapter1.TableMappings.AddRange(new System.Data.Common.DataTableMapping[]
                                                {
                                                    new System.Data.Common.DataTableMapping("Table", "butikker", new System.Data.Common.DataColumnMapping[]
                                                                {
                                                                    new System.Data.Common.DataColumnMapping("ButikId", "ButikId"),
                                                                    new System.Data.Common.DataColumnMapping("Navn", "Navn"),
                                                                    new System.Data.Common.DataColumnMapping("Adresse", "Adresse"),
                                                                    new System.Data.Common.DataColumnMapping("By", "By"),
                                                                    new System.Data.Common.DataColumnMapping("Postnummer", "Postnummer"),
                                                                    new System.Data.Common.DataColumnMapping("Telefon", "Telefon"),
                                                                    new System.Data.Common.DataColumnMapping("Beskrivelse", "Beskrivelse")})});
       
       
       
    //    sqlDataAdapter1.SelectCommand.CommandText(SELECT navn) FROM butikker);
           
        //til sidste returneres et dataset.
        return butikData.butikDataSet;
        }

      catch(Exception xp)
    {
        //MessageBox.Show(xp.Message);
    }
}
Avatar billede innercitydk Nybegynder
02. marts 2006 - 17:09 #13
Så vidt jeg kan se. Her er en god side med eksempler:

http://www.connectionstrings.com/
Avatar billede flvind Nybegynder
02. marts 2006 - 17:14 #14
hmm nu får jeg denne fejl

Error    8    'butikData.butikDataSet1()': not all code paths return a value    C:\Documents and Settings\Flemming\My Documents\Visual Studio 2005\Projects\design\butikData.cs    19    20    design
Avatar billede innercitydk Nybegynder
02. marts 2006 - 17:25 #15
Hmm. Jeg har før haft problemer med databaser fordi feltet "By" kan konflikte med "Order By" Prøv engang at omdøbe feltet i By i databasen, og i koden. Det kan måske være derfor.
Avatar billede flvind Nybegynder
02. marts 2006 - 17:31 #16
ok takker for forslaget ligger du et svar
Avatar billede innercitydk Nybegynder
02. marts 2006 - 17:32 #17
Virker det?
Avatar billede innercitydk Nybegynder
02. marts 2006 - 17:38 #18
Jeg ser lige at jeg har glemt noget  i koden. Derfor den seneste fejlmeddelelse. I catch skal du lige skrive:

catch(Exception xp)
{
    MessageBox.Show(xp.Message);
    butikDataSet = new DataSet();
    return butikDataSet;
}

SÅ vil den ved fejl udskrive fejlbeskeden og returnere et tomt dataset. Tror ik helt det er den rigtige måde at gøre det på men det burder virke :)
Avatar billede flvind Nybegynder
02. marts 2006 - 17:59 #19
ok kigger lige på det
du må gerne ligge et svar op
Avatar billede innercitydk Nybegynder
02. marts 2006 - 18:01 #20
Ellers tak :) Kun hvis det virker. Ellers laver du bare selv et svar og accepterer..
Avatar billede flvind Nybegynder
02. marts 2006 - 18:02 #21
det virkede delvist
den giver en fejl ved min member da mit dataset er tomt og min table ikke er der
Avatar billede innercitydk Nybegynder
03. marts 2006 - 09:11 #22
Hvilken fejlmeddelelse skriver den i messageboxen?
Avatar billede flvind Nybegynder
03. marts 2006 - 09:25 #23
Hej her er min fejlbesked i messageboxen
An error has occurred while establishing a connection to the server. When connectiong to SQL Server 2005, this failure may be causeed by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 -  Could not open at connection to SQL Server)

Den returnere desuden en
(ArgumentException was unhandled)
ved denne kode
----- kode ----
        private void btnButik_Click(object sender, System.EventArgs e)
        {
            butikData bd = new butikData();
            string member;
            member = "Table";
            dataGridData.SetDataBinding(bd.butikDataSet1(), member); ***
        }
---- kode ----

stedet markeret med *** angiver det sted hvor compileren henviser til fejlen og linien er markeret med gult i koden.

jeg tror at problemet er at jeg benytter Table som member og den ikke er oprettet i min catch funktion. ved du hvordan jeg løser dette problem??
Avatar billede innercitydk Nybegynder
03. marts 2006 - 10:24 #24
Den primære fejl er at den ikke kan åbne database: "Could not open at connection to SQL Server". Den anden fejl opstår fordi catch returnerer et tomt dataset. Den eneste grund til at dne returnerer det tomme dataset er at ellers vil den ikke compile fordi der ikke returneres noget i catch. Har du prøvet at kigge på linket jeg skrev tidligere. Prøv eventuelt at rode lidt med din connection string ud fra de eksempler der bliver vist.
Avatar billede flvind Nybegynder
12. januar 2007 - 13:12 #25
svar
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