Laden...

mit PDA auf MySQL Datenbank zugreifen

Erstellt von markus120379 vor 17 Jahren Letzter Beitrag vor 16 Jahren 2.603 Views
M
markus120379 Themenstarter:in
28 Beiträge seit 2006
vor 17 Jahren
mit PDA auf MySQL Datenbank zugreifen

Hallo,

kämpfe schon seit etlichen Tagen mit dem Problem und weiß echt keinen möglichen Lösungsansatz mehr:

ich möchte mit einem PDA (Windows Mobile Version 5.0) auf eine MySQL Datenbank die an einem Laptop läuft zugreifen. Beide sind mittels USB-Kabel verbunden.

Jetzt habe ich in Visual Studio C# ein neues Projekt erstellt (Pocket PC 2003 Projekt), und am Laptop den MySQL Connector/NET mit Setup einfach installiert.

Wenn ich nun die .exe Datei am PC ausführe funktioniert alles. Kopiere ich einfach die .exe auf den PDA und möchte dort starten wird schon die Zeile

 conn = new MySql.Data.MySqlClient.MySqlConnection();

nicht mehr ausgeführt.

Habe MySQL eingebunden mit AddReferences und auch mit Assemly.LoadFrom("...");

Mein Code:

--->Form1.cs


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using MySql.Data;


namespace Datenbankzugriff2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            
            MySql.Data.MySqlClient.MySqlConnection conn;
            MessageBox.Show("MyConnection eingerichtet");
            
            MySql.Data.MySqlClient.MySqlCommand cmd;
            MessageBox.Show("MySqlCommand (cmd) ausgeführt");
            string myConnectionString;
            

            myConnectionString = "host=xxx;uid=root;" +
                "pwd=xxx;database=auto;port=10001";
            MessageBox.Show("Variable: myConnectionString geschrieben.");

            try
            {
                conn = new MySql.Data.MySqlClient.MySqlConnection();
                cmd = new MySql.Data.MySqlClient.MySqlCommand();
                conn.ConnectionString = myConnectionString;
                conn.Open();
                cmd.Connection = conn;


                cmd.CommandText = "INSERT INTO marke_tab (typ, preis) VALUES ('audi', 100);";
                cmd.Prepare();
                cmd.ExecuteNonQuery();
                MessageBox.Show("Datensatz eingefügt", "Erfolg!");

            }
            catch (MySql.Data.MySqlClient.MySqlException ex)
            {


            }
        }
    }
}

----> Program.cs


using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Reflection;
using MySql.Data;
using System.IO;


namespace Datenbankzugriff2
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [MTAThread]
        static void Main()
        {

            try
            {
                
                Assembly.LoadFrom("MySql.Data.dll");
                //Assembly.LoadFrom("System.Data.dll");
            }
            catch 
            {
                MessageBox.Show("Fehler. Assembly: MySql.Data");
            }

            try
            {
                Type type = Type.GetType("MySql.Data.MySqlClient.MySqlConnection", false);
                MessageBox.Show("MySql.Data.MySqlClient.MySqlConnection gefunden!");
                
            }

            catch
            {
                MessageBox.Show("MySql.Data.MySqlClient.MySqlConnection NICHT gefunden!");
            }

            try
            {
                Type type = Type.GetType("MySql.Data.MySqlClient.MySqlCommand",false);
                MessageBox.Show("MySql.Data.MySqlClient.MySqlCommand gefunden!");
            }
            catch
            {
                MessageBox.Show("MySql.Data.MySqlClient.MySqlCommand NICHT gefunden!");
            }
            Application.Run(new Form1());
        }
    }
}


Vielleicht hat da jemand schon Erfahrung damit.

Compact Framework ist am PDA installiert, musste aber die System.dll aus dem "normalen" .NET Framework einfügen, da sonst die MySql.Data.dll nicht geht.

Wäre für jede Hilfe dankbar.

viele Grüße,

Markus

3.170 Beiträge seit 2006
vor 17 Jahren

Hallo,

Compact Framework ist am PDA installiert, musste aber die System.dll aus dem "normalen" .NET Framework einfügen, da sonst die MySql.Data.dll nicht geht.

Ich galube nicht daß das funktionieren kann. Wenn die MySql.Data.dll nicht funktioniert mit CF, wird das schon seinen Grund haben. Dann einfach dlls aus dem normalen Framework einzubinden halte ich für den falschen Weg -> die wäre ja nicht anders, wenn der PPC das alles könnte was drinsteht. Von daher wirst Du dann zwangsläufig früher oder später auf Probleme stoßen.
Schau lieer mal, ob's by MySql schon was fürs CF gibt, wenn nicht: Versuche herauszufinden warum MySql.Data.dll nich in CF funktioniert, und dann was zu stricken, was Dir den Zugriff erlaubt (könnte aber u. U. schwierig werden).

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

M
markus120379 Themenstarter:in
28 Beiträge seit 2006
vor 17 Jahren
ByteFX

Versuche es gerade mit ByteFX von http://www.ihook.com.au/open-source.htm#mysqlcf

Werde morgen weitermachen und berichten ob ich erfolgreich war.

viele Grüße,

Markus

S
8.746 Beiträge seit 2005
vor 17 Jahren

Du brauchst - wenn der existiert - einen speziellen CF-Connector.

M
markus120379 Themenstarter:in
28 Beiträge seit 2006
vor 17 Jahren

Ja stimmt. Aber den gibt es nicht, ich suche schon eine Woche dananch.

Es gibt nur den kostenpflichtigen Connector von "Corelab" http://www.crlab.com/

brauche aber einen Open Source. Das mit ByteFX funktioniert auch nicht, das ist anscheinend das gleiche wie MySQL Connector/NET.

weiß noch jemand weiter? Vielleicht mit ODBC? Habe da auch schon etwas recherchiert. Finde nichts was auf .NET CF läuft.

lg

Markus

S
8.746 Beiträge seit 2005
vor 17 Jahren

Soweit mir bekannt gibt es für Windows Mobile nur remote access mit dem MS SQL Server. Es gibt noch SQLite (open source), die ist allerdings embedded. Wenn dann gibt es vielleicht Replikationslösungen, denn üblicherweise arbeitet man ja unverbunden mit dem Server-Daten.

M
markus120379 Themenstarter:in
28 Beiträge seit 2006
vor 17 Jahren

Dankeschön für die Info.

Werd' mich damit beschäftigen, und bin für alle weiteren Ratschläge dankbar.

Grüße,

Markus

M
markus120379 Themenstarter:in
28 Beiträge seit 2006
vor 16 Jahren

@vandergille

Ich habe das damals durch eine kostenpflichtige Lösung gelöst. Es gibt einen Data Provider für das Compact Framework und MySQL von CoreLAB:

http://www.crlab.com/

Der heißt CoreLab MyDirect .NET

Hat damals um die 100 USD gekostet wenn ich nicht irre.

Grüße,
Markus

Markus