Avatar billede donslund Nybegynder
09. september 2005 - 11:17 Der er 25 kommentarer og
1 løsning

Oprette dll i SharpDevelop

Hvordan søren får jeg SharpDevelop til at lave en dll-fil. Jeg forsøger at pille en database-connection ud af min exe fil og så vil jeg referere til klassen i en dll fil. Men den skal jeg jo først lave.

Har jeg helt misforstået det?
Avatar billede arne_v Ekspert
09. september 2005 - 11:45 #1
Jeg mener at den wizard hedder "Class Library"
Avatar billede donslund Nybegynder
09. september 2005 - 11:56 #2
Men hvordan kombileres denne fil til en dll? Sker det automatisk. Når jeg tester mit projekt får jeg at vide, at db_connect.dll ikke findes.
Avatar billede arne_v Ekspert
09. september 2005 - 11:57 #3
hvis du opretter projektet med "Class Library" wizard så vil projektet
bygge en DLL og ikke en EXE

så kan du i et andet projekt som bygger en EXE have en reference til det første
projekts DLL
Avatar billede donslund Nybegynder
09. september 2005 - 12:33 #4
Men skal dll'en ikke kompileres inden jeg kan referere til den?
Avatar billede arne_v Ekspert
09. september 2005 - 12:38 #5
jo men det gør du i det første "Class Library" projekt
Avatar billede donslund Nybegynder
09. september 2005 - 12:44 #6
Ja undskyld min uvidenhed, men i mit dokument skriver jeg using db_connect; og laver en reference til db_connect.dll, men jeg kan ikke finde den dll når jeg browser via Add reference.
DLL-Filen skal vel dannes først før jeg kan vælge den under Add reference.
Avatar billede arne_v Ekspert
09. september 2005 - 12:49 #7
projekt 1:
  class library wizard
  skriv kode
  normal build
  så skulle du have en dll

projekt 2:
  application wizard
  tilføj reference til dll
  skriv kode
  normal build
  kør
Avatar billede arne_v Ekspert
09. september 2005 - 12:50 #8
using er til at importere namespace sog har ikke noget med referencer til
dll at gøre (bortset fra at namespace sog dll'er tit følges af)
Avatar billede arne_v Ekspert
09. september 2005 - 12:51 #9
når du skal tilføje

references
add reference
".NET assemblies browse" tab
og så vælger du bare din DLL
Avatar billede donslund Nybegynder
09. september 2005 - 13:04 #10
Så det at lave en dll er i et project for sig selv. Så forstår jeg det vist bedre.

Så skal jeg bare have den til at lade være med at melde fejl i mit db_connect.dll project.
Avatar billede donslund Nybegynder
09. september 2005 - 13:25 #11
Føj det er en hård nød, at komme igang med dette .NET.

Har brugt dit simple eksempel arne_v som jeg i øvrigt er stødt på mange steder her på exp. Jeg kan fint få konsollen til finde ting i databasen. Jeg kan også få listt indholdet i en listbox i en winform. Men når jeg så vil flytte dataconnection og sql-forespørgsler ud af mainform.cs, så skal jeg da sandelig love for, at der går ged i den.
Avatar billede donslund Nybegynder
09. september 2005 - 13:49 #12
Jeg får disse fejlmeddelelser:

MyClass.cs(18,17): error CS1519: Invalid token '(' in class, struct, or interface member declaration
MyClass.cs(21,10): error CS1519: Invalid token 'return' in class, struct, or interface member declaration
MyClass.cs(21,17): error CS1520: Class, struct, or interface method must have a return type
MyClass.cs(22,18): error CS1519: Invalid token '(' in class, struct, or interface member declaration

Det sjove er basre, at linie 18 er helt tom. Det samme er linierne 21 og 22.
Avatar billede donslund Nybegynder
09. september 2005 - 13:51 #13
Hele koden:

/*
* Created by SharpDevelop.
* User: jd
* Date: 09-09-2005
* Time: 12:57
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using ByteFX.Data.MySqlClient;
using ByteFX.Data;

namespace db_connect
{
    /// <summary>
    /// Description of MyClass.
    /// </summary>
    ///
   
   
   
   
   
   
    public class db_connect() {
        MySqlConnection con = new MySqlConnection("Database=Falck;Data Source=localhost;User Id=root;Password=");
        con.Open();
        MySqlCommand sel = new MySqlCommand("SELECT * FROM omraader", con);
        // MySqlDataReader rdr = sel.ExecuteReader();
        // rdr2 = rdr[0];
        // rdr.Close();
        return sel;
        con.Close();
    }
}
Avatar billede arne_v Ekspert
09. september 2005 - 16:02 #14
public class db_connect() {

skal være

public class db_connect {
Avatar billede donslund Nybegynder
14. september 2005 - 07:53 #15
Håber jeg må fortsætte med at forstyrre. Det løste nemlig ikke problemet.

c:\Documents and Settings\jd\Dokumenter\SharpDevelop Projects\db_connect\MyClass.cs(18,17): error CS1519: Invalid token '(' in class, struct, or interface member declaration

og dem er der 5 af.
Avatar billede arne_v Ekspert
14. september 2005 - 09:08 #16
tror jeg på

prøv noget a la:

namespace Donslund
{
    public class DbConnect
    {
        public String GetAString()
        {
              MySqlConnection con = new MySqlConnection("Database=Falck;Data Source=localhost;User Id=root;Password=");
              con.Open();
              MySqlCommand sel = new MySqlCommand("SELECT * FROM omraader", con);
              MySqlDataReader rdr = sel.ExecuteReader();
              rdr.Read();
              string res = (string)rdr[0];
              rdr.Close();
              con.Close();
              return res;
        }
    }
}
Avatar billede donslund Nybegynder
14. september 2005 - 09:18 #17
Jeg får de samme fejl. Jeg ved ikke helt, om det er en fejl i sharpDevelop, men jeg synes ikke rigtig at debuggeren reagerer på ændringer.
Avatar billede arne_v Ekspert
14. september 2005 - 09:38 #18
og du rebuilder ?
Avatar billede donslund Nybegynder
14. september 2005 - 09:45 #19
Jeg trykkede nu egentlig bare F5, men hvis jeg vælger Rebuild Combine så får jeg samme fejl.
Avatar billede donslund Nybegynder
14. september 2005 - 09:54 #20
Nu sker der noget. Nu har jeg 8 fejl :-)


Kode:
/*
* Created by SharpDevelop.
* User: jd
* Date: 09-09-2005
* Time: 12:57
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using ByteFX.Data.MySqlClient;
using ByteFX.Data;

namespace Donslund
{
    public class DbConnect
    {
        public String GetAString()
        {
              MySqlConnection con = new MySqlConnection("Database=Falck;Data Source=localhost;User Id=root;Password=");
              con.Open();
              MySqlCommand sel = new MySqlCommand("SELECT * FROM omraader", con);
              MySqlDataReader rdr = sel.ExecuteReader();
              rdr.Read();
              string res = (string)rdr[0];
              rdr.Close();
              con.Close();
              return res;
        }
    }
}

Fejl:
------ Build started: Project: db_connect Configuration: Debug ------
Performing main compilation...


c:\Documents and Settings\jd\Dokumenter\SharpDevelop Projects\db_connect\MyClass.cs(19,15): error CS0246: The type or namespace name 'MySqlConnection' could not be found (are you missing a using directive or an assembly reference?)
c:\Documents and Settings\jd\Dokumenter\SharpDevelop Projects\db_connect\MyClass.cs(20,15): error CS0246: The type or namespace name 'con' could not be found (are you missing a using directive or an assembly reference?)
c:\Documents and Settings\jd\Dokumenter\SharpDevelop Projects\db_connect\MyClass.cs(21,15): error CS0246: The type or namespace name 'MySqlCommand' could not be found (are you missing a using directive or an assembly reference?)
c:\Documents and Settings\jd\Dokumenter\SharpDevelop Projects\db_connect\MyClass.cs(22,15): error CS0246: The type or namespace name 'MySqlDataReader' could not be found (are you missing a using directive or an assembly reference?)
c:\Documents and Settings\jd\Dokumenter\SharpDevelop Projects\db_connect\MyClass.cs(23,15): error CS0246: The type or namespace name 'rdr' could not be found (are you missing a using directive or an assembly reference?)
c:\Documents and Settings\jd\Dokumenter\SharpDevelop Projects\db_connect\MyClass.cs(24,36): error CS0103: The name 'rdr' does not exist in the class or namespace 'Donslund.DbConnect'
c:\Documents and Settings\jd\Dokumenter\SharpDevelop Projects\db_connect\MyClass.cs(25,15): error CS0246: The type or namespace name 'rdr' could not be found (are you missing a using directive or an assembly reference?)
c:\Documents and Settings\jd\Dokumenter\SharpDevelop Projects\db_connect\MyClass.cs(26,15): error CS0246: The type or namespace name 'con' could not be found (are you missing a using directive or an assembly reference?)

Build complete -- 8 errors, 0 warnings
Avatar billede arne_v Ekspert
14. september 2005 - 17:44 #21
så mangler du at tilføje en reference til MySql.Data.dll
Avatar billede donslund Nybegynder
15. september 2005 - 08:18 #22
Nu tror jeg sørme den er der.
Point for al din tålmodige tid.

Der kommer sikkert flere spørgsmål ;-)
Avatar billede donslund Nybegynder
15. september 2005 - 08:19 #23
Men egentlig? Hvordan får jeg adgang til de ting jeg her har hevet ud af databasen fra en Main?
Avatar billede arne_v Ekspert
15. september 2005 - 08:40 #24
så ligger jeg et svar
Avatar billede arne_v Ekspert
15. september 2005 - 08:41 #25
mit kode fragment returnerede første række første kolonne som string

i et mere realistisk eksempel skal du jo nok læse flere værdier op
fra databasen og så returnere et objekt eller måske en collection af objekter
til den del af dit program som skal bruge data
Avatar billede donslund Nybegynder
15. september 2005 - 09:07 #26
ja det er det. Det skal jeg lige se om ikke jeg kan finde noget at læse om. Enten en bog eller på nettet. Har betilt en C# bog hos IDG til 50,- Håber den er god.
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