Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von robbyrc
Thema: Office 2013 Extensions funktionieren mit aktuellem Office 365 nicht mehr
Am im Forum: Office-Technologien

Hallo Stefan,

auf klassische Access-Datenbanken (Dateierweiterung .mdb) kannst du nur aus 32-Bit-Applikationen zugreifen, da der JET-Treiber, der dazu verwendet wird, nur in 32 Bit vorliegt.

EDIT:
Verwendest du die Jet-MDB-Datenbank, oder das neue .ACCDB-Format?
Wenn du ACCDB-Verwendest - vergiss meine Antwort ;)

Office 365 wird vermutlich auf der Maschine jedoch als 64 Bit installiert sein, wodurch sich dein 2. Problem ergibt (vermute ich jetzt mal) - die 32 Bit-Anwendung, die zwar jetzt die Datenbank lesen kann, kann mit den 64-Bit Komponenten vom Office nicht mehr kommunizieren.

Problem 1 lässt sich somit nur umgehen, wenn du eine Datenbank verwendest, die auch mit 64 Bit läuft (SQLite, SQL Server). Dann kannst du eine 64-Bit-Applikation bauen, die dann auch mit dem (vermutlich) 64-Bit-Office läuft.


Daniel

Thema: Kann es Methoden(aufrufe) innerhalb von Methoden geben?
Am im Forum: Grundlagen von C#

Servus,

Deine Main-Funktion sowie Console.WriteLine sind beides Methoden, das ist soweit korrekt. Ich würde es in deinem Fall jedoch so spezifizieren:

Deine "Main"-Methode ist eine Methodendeklaration, d.h. du definierst bzw. erstellst selbst eine Methode, die bestimmte Anweisungen ausführt

Das Console.WriteLine ist ein Methodenaufruf, d.h. du rufst eine bestehende Methode des .NET Frameworks, oder auch eine selbst von dir deklarierte Methode auf.


Mit diesen Begriffen gilt dann folgendes: Du kannst keine Methode innerhalb einer anderen Methode deklarieren (Ausnahme sind anonyme Methoden), allerdings kannst du beliebige Methoden aus einer anderen Methode aufrufen. Und dies sowohl mehrfach, als in Schleifen und auch verschiedenen Ebenen.

Hoffe das machts etwas klarer :)


Daniel

Thema: Microsoft.ACE.OLEDB.12.0 bringt auf einer Maschine, dass der Treiber nicht installiert ist
Am im Forum: Office-Technologien

Ist eventuell die 32Bit-Version von Excel oder der Runtime installiert?

Wenn ja - muss deine Applikation auch als x86 in 32 Bit kompiliert werden, da ansonsten der 64-Bit Prozess nicht auf den Treiber zugreifen kann. Das ist auch eine kleine Stolperfalle, gleiches z.B. wenn du per OleDB den JET-Treiber verwenden willst.

Thema: Suche ein Präsentationsthema zur Ausbildereignungsprüfung
Am im Forum: Smalltalk

Bei mir war's auch der Arbeitsspeicher (Notebook), bei einem im Kurs die Grafikkarte, beim nächsten die Festplatte - eigentlich haben alle relativ einfache, nicht komplexe Themen gehabt - eben um Sie in den 15 Minuten durchzubringen (4-Stufen-Methode).

Thema: Anbieter für Code Signing Certificates für exe
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat von jbrand
Ein unrühmliche Ausnahme bilden hier aber tatsächlich die Zertifikate von StartSSL mit denen das TimeStamping nicht funktioniert. Diese Zertifikate sind also für das Codesigning nicht wirklich zu empfehlen.

Das kann ich so nicht bestätigen - ich habe jetzt die StartSSL-Zertifikate seit ein paar Jahren in Verwendung, nachdem die von K-Software vor ein paar Jahren immer sehr "kompliziert" waren was Einzelunternehmen angeht, da hier immer die Unterlagen nicht passten.

Und meine StartSSL-Zertifikate kann ich genauso über den Verisign-Timestamp-Server timestampen lassen, das geht ohne Fehler oder Probleme. Am Ende ist in der signierten EXE-Datei dann auch der Zeitstempel drin.



Daniel

Thema: Labelzuweisung in einer anderen Form aufrufen
Am im Forum: Grundlagen von C#

Hallo,

die Fehlermeldung sagt doch eigentlich bereits alles ;)

Zitat
Es wurde kein Argument angegeben, das dem formalen Parameter "Label_Wort" von "Form1.WordMethode(Label)" entspricht.

Dem Methodenaufruf fehlt also ein Argument. Deine Funktion in Form1 erfordert ein Argument, da du das bei der Funktion so definiert hast (das in den Klammern, "Label_Wort"):


public static void WordMethode(System.Windows.Forms.Label Label_Wort)
        {
            Label_Wort.Text = Convert.ToString(wort);
        }

Daher musst du beim Aufruf auf dieses Argument natürlich mit angeben, also dein Label_Wort:


Form1.WordMethode(Label_Wort);

Ansonsten weiß die Funktion ja nicht, welches Label es verwenden sollte.



Daniel

Thema: Nach Select-Statement ist SQLite Datenbank immernoch gelockt --> Usings benutzen
Am im Forum: Datentechnologien

Andere Möglichkeit: Hast du eventuell keine Schreibrechte auf die Datenbank auf Windows-Ebene? Also Datenbank Schreibgeschützt oder Benutzer ohne Berechtigung?

Thema: Display-Helligkeit via Code steuern (Surface Pro 4)
Am im Forum: GUI: Windows-Forms

Hi,

hast du es über WMI schon versucht, um die Helligkeit zu regeln?

CodeProject Beispiel

Lg
Daniel

Thema: EF7 Projekt ohne Installationsprogramm verteilen ?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

Du kannst dem Tool ILMerge mehrere DLLs in deine EXE mergen, damit hättest du am Ende nur noch eine Datei die du weitergeben musst. Das klappt aber nur mit .NET Assemblys soviel ich weiß, aber das sollte ja in Ordnung sein.

Daniel

Thema: Problem: Änderungen an Access-Datenbank werden nicht übernommen
Am im Forum: Datentechnologien

Hallo chribl,

Ich behaupte jetzt einfach mal dass das nichts mit dem Programmieren zu tun hat. Kann es sein, dass die Access-Datenbank, also das MDB File zu deinem C# Projekt gehört, also im Visual Studio im Projekt eingebunden ist? Und sich die MDB auf diedu im Programm zugreifst im gleichen Ordner befindet wie deine EXE Datei?

Falls ja, ist in den Eigenschaften der Datei im Visual Studio eventuell eingestellt dass die Datei beim erstellen des Projektes neu in das Ausgabeverzeichnis kopiert wird - und damit deine Änderungen wieder überschreibt.

Prüf das auch mal - hört sich für mich sehr stark danach an.



Daniel

Thema: MessageBox wird auf fremden Rechner nicht angezeigt
Am im Forum: GUI: Windows-Forms

Hallo,

läuft auf den IPCs ein vollständiges Windows 7, oder ist es ein Embedded Windows7?

Beim Embedded Windows 7 gibt es die Möglichkeit die Komponente "Message Box Default Reply" zu aktivieren, die jede MessageBox automatisch beantwortet, und dadurch erscheint keine MessageBox (https://msdn.microsoft.com/en-us/library/ee832759.aspx#Component_Configuration).

Wobei das auch seltsam wäre wenn manche Boxen gehen und manche nicht. Eventuell hilft ein Blick ins EventLog von Windows - wenn es am Message Box Default Reply liegen würde, würde das normalerweise was geloggt werden.


Daniel

Thema: Access DB erstellen mit 64 bit
Am im Forum: Datentechnologien

Hallo,

es gibt für die "klassische" JET-Engine mit den alten Treibern (und mit den klassischen MDB-Dateien von Access) keine Möglichkeit, diese unter 64 Bit zum laufen zu bekommen. (gibts auch einige Microsoft-Infos dazu How to get a x64 version of Jet?).

Die einzige Möglichkeit ist entweder, die Anwendung als 32 Bit zu kompilieren, dann gehen auch die JET-Geschichte wieder. Alternative, wenns 64 Bit sein muss, musst du auf den ACE-Treiber von Microsoft umstellen, der zusätzlich installiert werden muss. Der soll das auch können, mehrere Firmen machen das auch über die ACE-Treiber, um die Kompatibilität zu gewährleisten (Verwendung von 64-Bit-Applikationen mit Microsoft Access-Datenbankdateien).

Da wird aber ADOX auch nicht funktionieren, da es hier keine 64 Bit Version von gibt - hier muss alles auf ACE umgestellt werden.

Gibt einiges dazu auf Stackoverflow:

Zitat
If you deploy your application on a 64 bit machine your code couldn't use ADOX via JET.OleDB.4.0
If this is the case, then, a fast solution could be to change your target architecture to x86.

Otherwise you could try to download and install on the target machine the 64bit version of Microsoft Access Database Engine drivers, but I don't know if they support ADOX. You will also need to change your connection string


Daniel

Thema: Anfängerfrage: Webiste in eine XML Datei lesen
Am im Forum: Grundlagen von C#

Mit dem HTML Agility Pack (http://htmlagilitypack.codeplex.com/) könnte man schon mal die "quasi" XPath-Query auf ne HTML-Seite durchführen. Funktioniert eigentlich relativ reibungslos, auch wenn natürlich die HTML-Seite kein XML ist...

Thema: DB kann nicht geöffnet werden, weil sie die Version 706 aufweist.
Am im Forum: Datentechnologien

Hallo,

die Datenbank wird, soweit ich weiß, beim anhängen direkt auch ohne irgendeine Bearbeitung auf das aktuelle Format des SQL-Servers aktualisiert. Ein anhängen an eine alte Version ist dann nicht mehr möglich, nur noch ein Anhängen an eine gleiche oder neuere Version.

Ich denke nicht dass man das unterbinden kann, da der 2012er einige Änderungen an der Datenbankdatei durchführt, die halt der 2008er nicht mehr kann.

Dazu gibts auch im Internet ein bisschen was dazu, so wie ich das sehe ist die einzige Möglichkeit die Datenbank wieder an den "alten" Server zu bekommen das erzeugen von dementsprechenden Generate-Skripts, um die Datenbank im alten Server wieder zu erstellen:

SQL Server 2008 R2 bumps the database version
Cannot be opened because it is version 706. This server supports version 661 and earlier

Grüße,
Daniel

Thema: SqlException Fehlermeldung: Ungültiger Objektname
Am im Forum: Datentechnologien

Hallo,

versuch mal im Connection-String den InitialCatalog anzugeben, damit der SQL Server auch weiß, in welcher Datenbank sich die Tabelle "tblOverview" befindet. Bisher gibst du Ihm mit der Data Source ja nur den Server, aber nicht die Datenbank selbst.

Also z.B.:


Data Source=ARBEITS-PC;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;Initial Catalog=Test"


Dann sollte er das Objekt eigentlich auch finden ;)


Grüße,
Daniel

Thema: Drag n Drop ohne gestartete Zielanwendung durchführen (Dateien aufs Icon der Zielanwendung ziehen)
Am im Forum: GUI: Windows-Forms

Hallo,

wenn ich das ganze jetzt richtig verstehe, müssten doch die Befehlszeilenargumente das richtige sein, was du suchst?

Wenn du eine Datei auf das Desktop-Icon deiner Applikation ziehst, wird normalerweise die Anwendung gestartet, und die Datei als Befehlszeilenargument übergeben, oder irre ich mich da?


Grüße,
Daniel

Thema: Suche VisualStudio 2012 like Toolbox (für Windows Forms oder WPF)
Am im Forum: GUI: Windows-Forms

Hallo,

mit der DockPanel Suite oder entsprechenden kostenfpflichtigen Komponenten (DevComponents, DevExpress, Infragistics...) lässt sich sowas alternativ auch umsetzen. Da ist halt dann schon alles fertig ;)



Daniel

Thema: Could not load file or assembly 'MySql.Data
Am im Forum: Web-Technologien

Hallo,

also der Connector muss selbst nicht auf dem Ziel-System installiert werden (über den MySQL-Installer).

Ich liefere die MySql.Data.dll auch mit meinem Programm nur im Programmverzeichnis mit, eine Installation ist hier nicht notwendig, es reicht, wenn sich die DLL im Programmverzeichnis mit den anderen Assemblys befindet (oder der bin-Ordner im Webprojekt).



Daniel

Thema: Visual Studio 2013 Product Key kaufen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Alternativ neben dem Bizspark Programm gibts auch noch das Microsoft Action Pack (Development and Design) (Microsoft Action Pack-Abonnement).

Kostet glaub ich um die 400 Euro pro Jahr, und da sind auch Visual Studio, Microsoft Windows, Office usw. enthalten.

Thema: [erledigt] Form minmiert sich nach entsprerren aus der Invoke-Methode
Am im Forum: GUI: Windows-Forms

Hallo,

ich würde an deiner Stelle wirklich nur die Steuerelemente im Form sperren, und nicht die ganze Form. Also quasi so:


foreach (Control c in Controls)
{
c.Enabled = false ;
}

Damit umgehst du das Problem ganz, weil ob ein Disablen des gesamten Fensters so in diesem Sinn gedacht ist, glaube ich nicht ;)


Lg,
Daniel

Thema: C# auf vorhanden sein von DB prüfen ohne diese zu erstellen?
Am im Forum: Datentechnologien

Hallo,

du kannst die MySQL-Internen Tabellen abfragen, in denen die einzelnen Tabellen und Datenbanken verzeichnet sind. Das könnte dann in etwa so aussehen:


SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'DATABASENAME' AND table_name = 'DATATABLENAME'"

Mit nem ExecuteScalar mit dem oben genannten SQL-Befehl solltest du herausbekommen ob die Datenbank existiert, oder nicht. Zusätzlich kannst du noch prüfen, ob eine Tabelle darin besteht, oder ob die Datenbank leer ist.


Daniel

Thema: WinForms - viele Controls setzten - gehts einfacher?
Am im Forum: GUI: Windows-Forms

Vielleicht reicht ja auch ein PropertyGrid für die Anzeige der Einstellungen aus:

PropertyGrid

Lg,
Daniel

Thema: Welchen E-Book Reader soll ich wählen?
Am im Forum: Smalltalk

Hallo,

also ich kann hier meinen Senf zu dem Kobo dazugeben, den habe ich nämlich ;) (Kobo Touch, http://www.kobobooks.de/touch).

Bisher habe ich überwiegend gute Erfahrungen mit dem Kobo gemacht. Hauptgrund, warum es ein Kobo wurde, war der Preis und der Wunsch, nicht unbedingt von Amazon mit den eBooks abhängig zu sein.

- Touch Bedienung sehr gut möglich, auch das Display ist sogar in der Sonne Top lesbar
- Der Kobo unterstützt mehrere Wörterbücher (Kindle glaub ich nur ein Deutsches).
- Übersetzungsfunktion z.B. bei Englischen Büchern klappt sehr gut
- Integrierter Shop kann mit Kreditkarte gut benutzt werden, kostenlose Leseproben vorhanden
- eBooks aus anderen Stores (Weltbild, buch.de, Libri...) in offenen Formaten können auch importiert werden
- Bilder können auch hochgeladen werden (aber sind natürlich nur Schwarz-Weiß)
- Sync-App zum Lesen und Syncronisieren für den PC vorhanden
- Kleines Sudoku und Webbrowser vorhanden (aber nur Schwarz-Weiß ;))
- Relativ häufige Updates, Top-Akkulaufzeit (auf 4 Monate jetzt 3 mal geladen).
- "Reading-Life": Posten von Status-Mitteilungen (aktuelles Buch, Lesezeit, Statistik) auf Facebook.

Negative Punkte gibt's eigentlich nur wenige:

- Integrierter Shop hat hauptsächlich Englische Bücher, also weniger Deutsche Bücher (wobei das weniger Problematisch ist, da Medien auch aus deutschen eBook-Shops gekauft werden können).
- PDFs teilweise langsam, daher Konvertieren angebracht


Aber ansonsten bin ich mit dem Kobo Touch vollstens zufrieden, und kann den eigentlich nur weiterempfehlen!


Daniel

Thema: Adresse auf Karte anzeigen lassen: Woher kommerziell nutzbare Geodaten beziehen?
Am im Forum: Rund um die Programmierung

Hallo,

alternativ ist auch das GMaps.NET-Projekt eine gute Anlaufstelle.

Das ist im Endeffekt ein Control, bei dem du die Kartenanbieter (Google, Bing, OpenStreetMaps...) einfach umschalten kannst.

Link: http://greatmaps.codeplex.com/

Das Control kann auch noch Routen anzeigen, Punkte als Icon mit Bildern markieren und und und...

Mfg,
Daniel

Thema: Aus ContextMenu ermitteln, auf welches Control geklickt wurde
Am im Forum: GUI: Windows-Forms

Hi,

über folgendes solltest du da dran kommen:

ContextMenu.SourceControl Property



Daniel

Thema: Keine Überladung für"webBrowser1_NewWindow" stimmt mit den Delegaten "System.Eventhandler" überein.
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi,

das Event ist ja lt. MSDN WebBrowser.NewWindow-Ereignis vom Typ "CancelEventHandler", dadurch meckert der Compiler natürlich, wenn du das ganze als "normalen" System.EventHandler verwenden willst.

Folgendes sollte gehen:


test.NewWindow += new System.ComponentModel.CancelEventHandler(webBrowser1_NewWindow);

test.NewWindow += new CancelEventHandler(webBrowser1_NewWindow);

test.newWindow += webBrowser1_NewWindow;



Daniel

Thema: [erledigt] Setup: Programmupdate, bei der die bestehende Datenbankdatei erhalten bleibt
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hi,

ergibt das aber dann nicht das Problem, wenn jemand den höheren Build ohne eine bereits Installierte Version installiert, dass der dann keine Datenbank hat?

Weil eine Vorgängerversion war ja nicht installiert, daher auch keine Datenbank auf dem PC vorhanden?

Leider kenn ich mich mit dem VS-integrierten Installer nicht wirklich aus, aber ich habe jetzt bei einer kurzen Suche des öfteren gelesen, dass das mit dem "nicht-überschreiben" so ohne weiteres nicht im VS gemacht werden kann.


Daniel

Thema: [erledigt] Setup: Programmupdate, bei der die bestehende Datenbankdatei erhalten bleibt
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

welcher Installer wird denn verwendet?

Ich habe das selbe Vorhaben (Datenbank wird einmal bei einer erstinstallation installiert, danach weder deinstalliert noch bei einem Update überschrieben) mit InnoSetup ohne Probleme umsetzen können.

InnoSetup bietet bei Dateien z.B. folgende Flags, die das möglich machen:

onlyifdoesntexist - Kopiert eine Datei nur, wenn es sie noch nicht gibt
uninsneveruninstall - Deinstalliert eine angegebene Datei nicht.



Daniel

Thema: Kann nicht über Programm auf SQL Server 2005 in einem Netzwerk zugreifen
Am im Forum: Datentechnologien

Bei verschiedenen Datentypen wirst du immer ein bisschen was anpassen müssen, seis die Hochkommas, oder andere Sachen, die jede Datenbank etwas anders macht. Bei MySQL ist dann unter Linux z.B. auch zu beachten, dass es alles Case Sensitive ist.

Hier ist ein O/R-Mapper das vernüftigste, da viele hier das Mapping und die SQL-Befehle automatisch korrekt absetzen.

Deine Spalte "maid" ist die ID des Mitarbeiters, oder? Dann ist die Spalte vermutlich eine Zahl - also gehören hier bei der Abfrage keine Hochkomma hin, da diese einen String kennzeichnen.

Ansonsten kannst du die Typen "DbCommand", "DbConnection", "DbDataAdapter" usw. verwenden, die keinen speziellen Datenbanktypen zugeordnet sind. Also z.B.:


DbConnection Test = new MySqlConnection(ConnectionString);


Daniel

Thema: Kann nicht über Programm auf SQL Server 2005 in einem Netzwerk zugreifen
Am im Forum: Datentechnologien

Hi,

connection = new [B]MySqlConnection[/B](@"Data Source=" + dbhost + ";User Id=" + dbname + ";Password=" + dbpassword + ";Initial Catalog=" + dbdb + ";");

Wieso erstellst du eine MySQL-Connection, wenn du auf einen SQL-Server zugreifen willst? Oder ist das ein Tippfehler? ;)


Daniel