Laden...
R
robbyrc myCSharp.de - Member
Fachinformatiker / Anwendungsentwicklung Passau Dabei seit 17.02.2006 317 Beiträge
Benutzerbeschreibung

Forenbeiträge von robbyrc Ingesamt 317 Beiträge

30.03.2020 - 12:23 Uhr

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

01.09.2019 - 11:42 Uhr

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

24.06.2019 - 09:23 Uhr

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.

13.05.2019 - 22:17 Uhr

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).

31.03.2017 - 12:47 Uhr

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

17.12.2016 - 12:46 Uhr

Hallo,

die Fehlermeldung sagt doch eigentlich bereits alles 😉

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

15.08.2016 - 20:16 Uhr

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

31.07.2016 - 12:05 Uhr

Hi,

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

CodeProject Beispiel

Lg
Daniel

27.01.2016 - 20:35 Uhr

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

28.11.2015 - 22:34 Uhr

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

31.10.2015 - 20:54 Uhr

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

29.10.2015 - 09:26 Uhr

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:

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

08.03.2015 - 20:21 Uhr

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...

05.03.2015 - 09:38 Uhr

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

09.02.2015 - 22:45 Uhr

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

15.08.2014 - 00:47 Uhr

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

11.06.2014 - 10:52 Uhr

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

29.05.2014 - 23:48 Uhr

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

27.05.2014 - 14:47 Uhr

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.

27.03.2014 - 16:56 Uhr

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

21.02.2014 - 20:54 Uhr

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

23.01.2014 - 19:01 Uhr

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

PropertyGrid

Lg,
Daniel

08.10.2012 - 22:41 Uhr

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

18.07.2012 - 00:10 Uhr

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

28.05.2012 - 16:29 Uhr

Hi,

über folgendes solltest du da dran kommen:

ContextMenu.SourceControl Property

Daniel

27.05.2012 - 01:59 Uhr

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

17.05.2012 - 21:49 Uhr

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

17.05.2012 - 00:59 Uhr

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

23.04.2012 - 15:02 Uhr

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

23.04.2012 - 13:04 Uhr

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

02.04.2012 - 21:40 Uhr

Wenn's ein bisschen was kosten darf, wäre das hier auch noch was was das kann:

http://www.devcomponents.com/dotnetbar/NavigationBar.aspx

Nutze ich selbst auch und bin seit Jahren vollstens zufrieden.

Daniel

23.03.2012 - 22:51 Uhr

Hallo,

natürlich:


DbConnection MeineConnection = new MySqlConnection(...);

Daniel

23.03.2012 - 22:25 Uhr

Hallo,

verwende DbConnection, die gemeinsame Basisklassen aller Datenbank-Connections.

Daniel

15.01.2012 - 16:39 Uhr

Hi,

du kannst eine eigene Klasse von der Klasse "GMapMarker" ableiten:


    internal class GMapLogo : GMapMarker
    {
        public float? Bearing = 0.0f;


        public GMapLogo(PointLatLng p)
            : base(p)
        {
            base.Size = new Size(Symbole.Logo_16.Width, Symbole.Logo_16.Height);
            base.Offset = new Point(-10, -8);
        }

        public override void OnRender(Graphics g)
        {
            // g.DrawImageUnscaled(GMap.NET.Properties.Resources.shadow50, base.LocalPosition.X, base.LocalPosition.Y);
            if (Bearing.HasValue)
            {
                g.TranslateTransform(base.ToolTipPosition.X, base.ToolTipPosition.Y);
                g.RotateTransform(Bearing.Value);
                g.ResetTransform();
            }
            g.DrawImageUnscaled(Symbole.Logo_16, base.LocalPosition.X, base.LocalPosition.Y);
        }
    }

In dieser eigenen Klasse kannst du dann, wie ich hier gemacht, ein eigenes Icon oder Bild zeichnen (in der OnRender-Funktion ganz unten).

Daniel

21.12.2011 - 00:49 Uhr

Hi,

die Zurodnung(en) der COMxx... Bezeichner werden ja in der Registry zu den Geräten gespeichert. Über die Registry könntest du die "Friendly Names" der COM-Ports auch ändern.

Changing Your Modem's COM Port Manually

Daniel

09.11.2011 - 23:09 Uhr

Hi,

prüfe mal im Konstruktor der "CreditsForm", ob dort "InitializeComponents" aufgerufen wird. Falls nicht, wird auch nur ein leeres Form angezeigt 😉

Daniel

03.11.2011 - 17:44 Uhr

Hi,

also ich habs mal kurz bei mir ausprobiert - und es funktioniert.

Er sucht natürlich immer noch in dem Ordner, wo die EXE liegt, aber auch in den angegebenen Ordner(n). Ich habe mal testweise eine benötigte DLL aus dem EXE-Ordner in einen Unterordner namens "Shared" kopiert -> ohne app.config-Änderung stürzt die Anwendung wie erwartet ab.

Danach habe ich die "WinBook.exe.config" (WinBook.exe ist Programm-Datei) u.A. auf das geändert:


	<startup>
	<supportedRuntime version="v2.0.50727"/></startup>
	<runtime>
		<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
			<probing privatePath="Shared"/>
		</assemblyBinding>
	</runtime>

Und schon lädt er die DLL wieder, diesmal aus dem Shared-Ordner, weil sie sonst nirgends liegt 😉

Daniel

03.11.2011 - 01:01 Uhr

Hi,

.NET sucht meineswissens abhängige DLLs immer zuerst im GAC, dann im Programmverzeichnis (gleicher Ordner wie die EXE), und dann in den Pfaden, die in den Umgebungsvariablen festgelegt sind. In Unterordnern wird nach DLLs meines wissens überhaupt nicht gesucht, ausser das wird durch die app.config für die Anwendung festgelegt.

Infos zum "probing"-Elment gibts hier: <probing>-Elment


<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <probing privatePath="bin;bin2\subbin;bin3"/>
      </assemblyBinding>
   </runtime>
</configuration>

Das sollte das gewünschte sein 😉

Daniel

02.10.2011 - 23:04 Uhr

Hi,

meines Wissens nach "macht" AutoToolboxPopulate nur etwas, wenn ein Control in deinem eigenen Source-Code erstellt wird, also die Klasse in deinem Projekt enthalten ist. Bei externen Verweisen greift AutoToolboxPopulate nicht.

Hier musst du den Verweis bzw. das Control per Hand in die Toolbox einfügen, einfach per Rechtsklick auf die Toolbox und "Choose Items" (hab nur englisches VS da), und dann ner Auswahl der DLL.

Daniel

13.12.2010 - 13:58 Uhr

Hallo,

http://greatmaps.codeplex.com/ kann das (über GoogleMaps, OpenStreetMaps, Yahoo Maps, Bing Maps...).

Du kannst z.B. nach Adressen suchen, glaube aber dass Sehenswürdigkeiten oder ähnliches teilweise auch gefunden werden.

Mfg,
Daniel

02.12.2010 - 11:36 Uhr

Hi,

du musst deinem Printdocument natürlich noch "Bescheid" geben, welche Daten und welcher Drucker denn nun verwendet werden sollen:


printDocument1.PrinterSettings = printDialog.PrinterSettings ;

Bin mir zwar auf die Schnelle nicht mehr sicher wie die beiden Eigenschaften heißen, aber die sollten PrinterSettings lauten 😉

lg,
Daniel

13.10.2010 - 22:04 Uhr

Hi,

das Projekt "GMap.NET" (http://greatmaps.codeplex.com/) wäre eventuell ein Anlaufpunkt, um so eine Speichermethode, wie du Sie gerne hättest, zu erstellen. GMap.NET bietet die Möglichkeit, Karten Live (aus dem Internet) in einem Windows-Control anzuzeigen, UND legt die Daten dann auf Wunsch in einer Lokalen SQLite-Datenbank ab.

Eventuell kannst du dir bei diesem Projekt die Programmteile mit der Datenbankspeicherung ansehen, und dann deine benötigten Teile in eine Datenbank legen.

Mfg,
Daniel

03.10.2010 - 15:54 Uhr

Hallo,

versuch das ganze doch mal mit dem MouseDown- bzw. MouseUp-Event.

Bei Windows kann ja in den Einstellungen festgelegt werden, wie Windows auf einen Klick reagiert. Ein Klick ist ja einmal runter mit der Maustaste und dann wieder hoch. Eventuell erkennt Windows schnelle klicks oftmals als einen und nicht als mehrere Kicks oder als Doppelklick anstatt einem Einzelklick. Wenn du z.B. auf das MouseUp reagierst, sollte das vermutlich besser laufen.

Mfg,
Daniel

03.10.2010 - 04:35 Uhr

Hi,

versuch doch mal folgenden Connection-String:


Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myOldExcelFile.xls;Extended Properties="Excel 12.0;HDR=YES";

Ich wäre mir nämlich nicht ganz sicher, dass OLEDB noch die neuen Excel-Files im 12er Format unterstützt. Oder hast du das irgendwo bestätigt gefunden?

Die Meldung mit dem falschen ISAM hatte ich auch schon des öfteren, die muss nicht unbedingt auf einen falschen Connection-String hinweisen. Auch Fehler in der OLEDB- oder .NET Installation und falsche Datenbanken bzw. Versionen der Datenbank können das soviel ich weiß hervorrufen.

Mfg,
Daniel

02.09.2010 - 11:48 Uhr

Hallo,

ich denke du musst dem Netzlaufwerk erst "FullTrust" geben, damit du etwas von diesem Laufwerk mit Vollen rechten Starten kannst:

.NET Security Blog: Using CasPol to Fully Trust a Share

Mfg,
Daniel

06.08.2010 - 22:11 Uhr

Hallo,

verwendest du für die Signierung schon ein gültiges Authenticode-Zertifikat? Ein Zertifikat für einen Webserver ist nämlich ein anderes, als das, das zum Signieren von Programmdateien verwendet werden soll.

Mfg,
Daniel

22.07.2010 - 14:34 Uhr

Hi,

  1. Man erstelle eine BATch Datei mit folgendem Inhalt:

Pfad zum system32 Ordner + "\msiexec.exe, "/x", {ProductCode des Projects}

Füge diese in das SetupProjekt ein und und benutze diese zum Deinstallieren.
Funktioniert auch, nur ist dann während der gesamten Deinstallation das Konsolenfenster offen...

Erstelle hier doch einfach keine Batch-Datei, sondern mithilfe des Setup-Projekts eine Verknüpfung, die als zu Startendes Programm genau die msiexec.exe mit dem Parameter und dem ProduktCode hat.

Dann brauchst du kein Batch-Script, hast keine Kommandozeile und alles ist wie in andren Programmen auch.

Mfg,
Daniel

10.07.2010 - 20:40 Uhr

Alle .NET Anwendungen, die Datenzugriff Funktionalität verwenden, erfordern MDAC 2.6 oder höher (empfohlen wird MDAC 2.7).

Steht sinngemäß auf einer der Microsoft-Support-Sites 😉
http://support.microsoft.com/kb/315467

Also glaub ich wirds schwierig das anders zum laufen zu bringen.

Mfg,
Daniel

24.06.2010 - 11:18 Uhr

Hallo,

die behandlung OEM oder ANSI müsste sich eigentlich über die Registry abändern lassen:

Der Registry-Schlüssel \HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engines\Xbase\DataCodePage
ist verantwortlich für die Behandlung der Umlaute:
Wert "ANSI" => Windows-Zeichentabelle
Wert "OEM" => DOS-Zeichentabelle

Mfg,
Daniel

21.06.2010 - 10:13 Uhr

Hallo,

also theoretisch sollte es doch ganz einfach so gehen:


if (StringOhneLeerzeichen.Trim().Equals(StringMitLeerzeichen.Trim()))
{
 // Aktion ausführen
}

Bei der Trim-Funktion musst du aufpassen, da diese ein neues String-Objekt zurückgibt, und NICHT das vorhandene Abändert, also:


String meinNeuerString = alterString.Trim();

mfg
Daniel