Laden...
Avatar #avatar-1721.jpg
Mondi myCSharp.de - Member
Systemadministrator Rimbach Dabei seit 18.08.2005 30 Beiträge
Benutzerbeschreibung

Forenbeiträge von Mondi Ingesamt 30 Beiträge

04.04.2008 - 12:54 Uhr

Ja klingt logisch aber ich muss system minformationen auslesen wie den komputernamen und wie soll ich das sonst realisiren ist halt der erste dienst den ich schreibe.

03.04.2008 - 16:29 Uhr

Klingt logisch is aber ne berechtigte frage ob man es darf oder nicht.

03.04.2008 - 16:13 Uhr

Hallo ich möchte in einem Dinst folgendes verwenden:

System.Windows.Forms.SystemInformation.(*)

mag sein das ich zu blöd bin aber wi sol ich das in einem service verenden da ich

using System.Windows.Forms;

ja nicht verwenden kann.

were suzper wenn mir wer helfen kann.

05.12.2007 - 15:57 Uhr

ja danke.

Feldnamen in [] und es geht, das ü sollte man nicht verwenden aber is nich das Problem habs aber trozdem rausgenommen.

Das waren meine beiden Fehler nach 2 Tagen den gleichen Code ansehen sieht man sowas einfach nicht mehr.

05.12.2007 - 14:30 Uhr

verwendetes Datenbanksystem: Access 2003

Hallo zusammen,

Ich habe Folgendes Problem:

Ich habe 3 Funktionen die ersten beiden generieren mir ein UPDATE/INSERT Komando.

Klasse zur generirung des UPDATE Komandos:

public bool dbUpdateData(string[] str_data, string str_tbl_Name)
        {
            bool status = false;
            string str_SQL = "UPDATE " + str_tbl_Name + " SET ";
            string[] str_tblColummNames = getCollomNames(str_tbl_Name);

            for (int i = 0; i < str_data.Length; i++)
            {
                if (i < str_data.Length - 1)
                {
                    if (str_data[i] != "0" && str_data[i] != "1")
                    {
                        str_SQL = str_SQL + str_tblColummNames[i] + " = '" + str_data[i] + "', ";
                    }
                    else if (str_data[i] == "0" || str_data[i] == "1")
                    {
                        str_SQL = str_SQL + str_tblColummNames[i] + " = " + Convert.ToInt16(str_data[i]) + ", ";
                    }
                }
                else if (i == str_data.Length - 1)
                {
                    if (str_data[i] != "0" && str_data[i] != "1")
                    {
                        str_SQL = str_SQL + str_tblColummNames[i] + " = '" + str_data[i] + "' WHERE " + str_tblColummNames[0] + " = '" + str_data[0] + "'";
                    }
                    else if (str_data[i] == "0" || str_data[i] == "1")
                    {
                        str_SQL = str_SQL + str_tblColummNames[i] + " = " + Convert.ToInt16(str_data[i]) + " WHERE " + str_tblColummNames[0] + " = '" + str_data[0] + "';";
                    }
                }
            }

            for (int i = 0; i < ds_InventarDB.Tables[str_tbl_Name].Rows.Count; i++)
            {
                if (str_data[0] == ds_InventarDB.Tables[str_tbl_Name].Rows[i][0].ToString())
                {
                    for (int j = 0; j < str_data.Length; j++)
                    {
                        if (str_data[j] != "0" && str_data[j] != "1")
                        {
                            ds_InventarDB.Tables[str_tbl_Name].Rows[i][j] = str_data[j];
                        }
                        else if (str_data[j] == "0" || str_data[j] == "1")
                        {
                            ds_InventarDB.Tables[str_tbl_Name].Rows[i][j] = Convert.ToInt16(str_data[j]);
                        }
                    }
                    i = ds_InventarDB.Tables[str_tbl_Name].Rows.Count;
                }
            }

            status = dbConnect(str_SQL, str_tbl_Name, false, true, false, false);

            return status;
        }

Klasse zur generirung des INSERT Komandos:

public bool dbAddData(string[] str_data, string str_tbl_Name)
        {
            bool status = false;
            DataRow row = ds_InventarDB.Tables[str_tbl_Name].NewRow();
            string str_SQL = "INSERT INTO " + str_tbl_Name + " (";
            string[] str_tblColummNames = getCollomNames(str_tbl_Name);

            for (int i = 0; i < str_tblColummNames.Length; i++)
            {
                if (i < str_tblColummNames.Length - 1)
                {
                    str_SQL = str_SQL + str_tblColummNames[i] + ", ";
                }
                else if (i == str_tblColummNames.Length - 1)
                {
                    str_SQL = str_SQL + str_tblColummNames[i];
                }
            }

            str_SQL = str_SQL + ") VALUES(";

            for (int i = 0; i < str_data.Length; i++)
            {
                row[i] = str_data[i];

                if (i < str_data.Length - 1)
                {
                    if (str_data[i] != "0" && str_data[i] != "1")
                    {
                        str_SQL = str_SQL + "'" + str_data[i] + "', ";
                    }
                    else if (str_data[i] == "0" || str_data[i] == "1")
                    {
                        str_SQL = str_SQL + Convert.ToInt16(str_data[i]) + ", ";
                    }
                }
                else if (i == str_data.Length - 1)
                {
                    if (str_data[i] != "0" && str_data[i] != "1")
                    {
                        str_SQL = str_SQL + str_data[i];
                    }
                    else if (str_data[i] == "0" || str_data[i] == "1")
                    {
                        str_SQL = str_SQL + Convert.ToInt16(str_data[i]);
                    }
                }
            }

            str_SQL = str_SQL + ");";

            ds_InventarDB.Tables[str_tbl_Name].Rows.Add(row);

            status = dbConnect(str_SQL, str_tbl_Name, false, false, true, false);

            return status;
        }

Die drite Funktion ist für den Datenbankzugrif und sieht wie folgt aus:

private bool dbConnect(string str_SQL, string str_tbl_Name, bool select, bool update, bool insert, bool delet)
        {
            string str_DBDatei = Properties.Datenbank.Default.path_DB.ToString();
            bool status = false;

            if (File.Exists(str_DBDatei) == true)
            {
    /*            try
                { */
                    //Connection
                    OleDbConnection odc_dbConnect = new OleDbConnection();
                    odc_dbConnect.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + str_DBDatei;
                    //Command
                    OleDbCommand odcom_SQL = new OleDbCommand();
                    odcom_SQL.CommandText = str_SQL;
                    odcom_SQL.Connection = odc_dbConnect;
                    //DataAdapter
                    OleDbDataAdapter odda_Tbl = new OleDbDataAdapter();
                    if (select)
                    {
                        odda_Tbl.SelectCommand = odcom_SQL;
                    }
                    else if (update)
                    {
                        odda_Tbl.UpdateCommand = odcom_SQL;
                    }
                    else if (insert)
                    {
                        odda_Tbl.InsertCommand = odcom_SQL;
                    }
                    else if (delet)
                    {
                        odda_Tbl.DeleteCommand = odcom_SQL;
                    }
                    
                    if (select)
                    {
                        odda_Tbl.Fill(ds_InventarDB, str_tbl_Name);
                    }
                    else if (update || insert || delet)
                    {
                        odda_Tbl.Update(ds_InventarDB.Tables[str_tbl_Name]);
                    }

                    odc_dbConnect.Close();

                    status = true;
   /*             }
                catch
                {
                    status = false;
                }*/
            }

            return status;
        }

Die folgende INSERT Anweisung wurde direkt von der Entsprechneden Klasse erstellt ich habe sie wehrend der Laufzeit rauskopiert:

INSERT INTO tbl_InventarNB (Inventarnummer, Seriennummer, Modellnummer, Herstellernummer, Hersteller, Typ, Computername, Domain, LanIP, Lan, WLanIP, WLan, CPU, Tacktrate, RAMM1, Grafikkarte, RAMM2, HDD, FDD, CDDVD, Akkunummer1, Akkunummer2, Verfügbarkeit) 
VALUES('NB-087', 'CNU74026Q9', 'GB955EA#ABD', 'C8510PTT7500W5X16GIBNF10QEGR', 'HP', 'Compaq 8510p', 'GONENB087', 'gmanet.de', '', '00-17-A4-EA-BD-B2', '', '00-13-E8-DA-B5-BD', 'Core2 Duo', '2.20 GHZ', '2048 MB', 'ATI Mobility Radeon HD 2600', '256 MB', '150 GB', 0, 'DVD-R/W', '6501801B5V13R0', '9507A4', 0);

dan bekomme ich bei:

odda_Tbl.Update(ds_InventarDB.Tables[str_tbl_Name]);

einen:

Syntaxfehler in der INSERT INTO-Anweisung.

wenn ich die Abfrage in Access direkt ausführe macht er es.
Das gleiche Problem habe ich bei den UPDATE Komandos.

vieleicht binn ich nach mehr als 36 Stunden Fehlersuche einfach nur Blind und Sehe den Fehler nicht were supper wenn mal jemand drüberschauen könnte.

Ich hatte auch schon folgenden beitrag gefunden :

Original von der Marcel
Evtl. hast du gar keinen Fehler und es könnte daran liegen: Schau dir mal im VS die Eigenschaften der mdb an. Wenn dort bei "In Ausgabeverzeichnis kopieren" immer kopieren ausgewählt ist, dann wird bei jedem compilieren die neue leere DB aus dem Projektverzeichnis in das Debug bzw Release-Verzeichnis kopiert

Dies trift aber Hir nicht zu da die Datenbank auf einem Netzlaufwerk liegen muss und für mehrere User zugenglich seihn soll.

04.12.2007 - 11:24 Uhr

Thx für die Hilfe.

04.12.2007 - 10:30 Uhr

danke für die schnelle Antwort aber wie kann ich es dann lösen?

04.12.2007 - 10:12 Uhr

ich wollte die Namen der Columns auslesen und in ein Array schreiben ich hab es wie folg probiert:

string[] str_dbColummNames = new string[ds_InventarDB.Tables[str_tbl_Name].Columns.Count];
ds_InventarDB.Tables[str_tbl_Name].Columns.CopyTo(str_dbColummNames, i);

aber ich bekomme die Meldung:

Mindestens ein Element im Quellarray konnte nicht in den Zielarraytyp umgewandelt werden.

vielleicht mache ich einen generellen Fehler wäre super wen mir jemand helfen kan.

30.11.2007 - 12:14 Uhr

Danke euch beiden für die schnellen Antworten.

Ich habe mich erst mal für die Lösung von Killerhase entschieden da ich diese sehr schnell implementieren konnte werde mich aber wenn ich etwas Luft habe mit herbivore Vorschlag beschäftigen da dies extrem interessant ist.

30.11.2007 - 10:24 Uhr

Hallo ich habe ein kleines Logisches Problem:

Ich habe ein String Array mit momentan 25 Modell Bezeichnungen dis kann aber ansteigen.

Mein Problem ist das einige Bezeichnungen doppelt vorkommen und ich brauche ein Array in dem jede Bezeichnung nur einmal vorkommt.

Die einzige Möglichkeit die mir einfällt ist mit mehreren schleifen und meiner Meinung nach nicht sehr sauber.

ich wäre für jeden Tipp dankbar.

19.06.2007 - 09:13 Uhr

jo danke bei mir leuft es in der Komplexibilität auf das selbe hreaus ich muss sogar noch ip-Addressen ändern und eine Wlan verbindung aufbauen.

Ich schau mir das ma an. Danke noch ma.

18.06.2007 - 14:06 Uhr

hallo ich habe folgendes Problem ich muss ein Programm schreiben mit dem ich dei LAN Vindung Deaktiviren und die WLAN Vbindung Aktiviren kann. ich habe aber noch keine Idee wie ich das realisiren Kann was auch noch wichtig ist das ich die Wlan verbindung mit einem in der Software Hinterlegtem Schlüssel herstelle und dieser nicht in der Standart Windows anwendung hinterlegt ist.

Dasganze mus dan auch wieder anderstrum gehen.

15.03.2007 - 11:52 Uhr

Hollo ich habe in problem das ich einfach nicht verstehe.

Ich habe eine INSERT Anweisung:

INSERT INTO tbl_Step VALUES(7, 1, 'TEST 01', 'TEST 02', 'test 01')

diese Anweisung übergebe ich an die folgende methode:

 public void Insert_db(string str_SQL, DataSet ds_Job, string tabelle)
        {
            //Connection
            OleDbConnection odc_ins_Tbl = new OleDbConnection();
            odc_ins_Tbl.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Properties.Settings.Default.path_DB;
            //Command
            OleDbCommand odcom_Insert = new OleDbCommand();
            odcom_Insert.CommandText = str_SQL;
            odcom_Insert.Connection = odc_ins_Tbl;
            //DataAdapter
            OleDbDataAdapter odda_ins_Tbl = new OleDbDataAdapter();
            odda_ins_Tbl.InsertCommand = odcom_Insert;
            //CommandBuilder
            OleDbCommandBuilder odcb_ins_Tbl = new OleDbCommandBuilder();
            odcb_ins_Tbl.DataAdapter = odda_ins_Tbl;
            odda_ins_Tbl.Update(ds_Job.Tables[tabelle]);  // hir trit der fehler auf
            odc_ins_Tbl.Close();
}

dan bekomme ich folgende Fehlermeldung:

Die von Ihnen vorgenommenen Änderungen an der Tabelle konnten nicht vorgenommen werden, da der Index, Primärschlüssel oder die Beziehung mehrfach vorkommende Werte enthalten würde. Ändern Sie die Daten in den Feldern, die gleiche Daten enthalten, entfernen Sie den Index, oder definieren Sie den Index neu, damit doppelte Einträge möglich sind, und versuchen Sie es erneut.

In der tabeller ist die 7 im primerschlüssel noch nicht vorhanden und es wird keine bezihung verletzt da es keine gibt. Und auser dem feld in das die 7 geschrieben werden soll ist kein anderes feld indizirt.

Das was ich aber noch weniger verstehe is das er es denoch in die DB schreibt.

Were super wenn mir wer helfen kan.

27.02.2007 - 08:10 Uhr

Hallo eine Librarie für C#

Hier

Weitere Libraries auch für andere sprachen findet man unter

Hier

hoffe das hilft dir.

09.01.2007 - 11:08 Uhr

Hallo zusammen,

Ich habe folgendes Problem ich Oberfleche zum eingeben des Neuen inventars erstellun und den hersteller und das Model in Checkbox an hand denen schon vorhandenen auswählen lassen.

DataSet dsHandyHersteller = new DataSet();
DataSet dsHandyTyp = new DataSet();

using (OleDbConnection connHerstellerTyp = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=P:\\TestDB\\TestDB.mdb"))
  {
        OleDbDataAdapter adapterHersteller = new OleDbDataAdapter();
        adapterHersteller.SelectCommand = new OleDbCommand("SELECT Inventar.Hersteller FROM Inventar GROUP BY Inventar.Hersteller ORDER BY Inventar.Hersteller", connHerstellerTyp);
        OleDbCommandBuilder builderHersteller = new OleDbCommandBuilder(adapterHersteller);
        adapterHersteller.Fill(dsInventarHersteller, "InventarHandy");
        
        OleDbDataAdapter adapterTyp = new OleDbDataAdapter();
        adapterTyp.SelectCommand = new OleDbCommand("SELECT Inventar.Typ FROM Inventar GROUP BY Inventar.Typ ORDER BY Inventar.Typ", connHerstellerTyp);
        OleDbCommandBuilder builderTyp = new OleDbCommandBuilder(adapterTyp);
        adapterTyp.Fill(dsInventarTyp, "Inventar");

  }

cbHersteller.DataSource = dsInventarHersteller.Tables[0];
cbModel.DataSource = dsInventarTyp.Tables[0];

Allerding geht das nicht ich bekomme zwar keine Fehlermeldung aber in den Checkbox steht nur System.Data.DataRowView.

Ich habe bisher noch keine grose erfarung im bereich ado alerdings habe ich in mehreren büchern nichts in dieser art gefunden wehre super wen mir jemand helfen kann.

08.09.2006 - 13:32 Uhr

Da ich leiser grad total auf dem schlauch stehe könntest du das mal in einem Beispiel verdeutlichen ich versuch das seit gestern der teil den ich habe war kein Problem nach dem ich wusste mit was es realisiert werden kann aber da hab ich echt keine Ahnung mehr.

Wehre echt super.

08.09.2006 - 13:03 Uhr

Falls du .net 2.0 verwendest schau dir da mal die BackgroundWorker-Komponente an.

Ja mache ich.

Also ich hab das Jetzt mal gebastelt aber ich habe das Problem das ich nicht weiß wie ich die Progressbar aktualisiere.

mir ist klar das ich das mit:

this.backgroundWorker1.ReportProgress();

in

private void bgwVortschritt_DoWork(object sender, DoWorkEventArgs e)

machen muss aber ich weiß nicht wie da ich ja keine schleife verwende.

Vielleicht kann mir ja wer Helfen.

        private void bgwVortschritt_DoWork(object sender, DoWorkEventArgs e)
        {
            if (rdbDatei.Checked == true || rdbDateiHash.Checked == true)
            {
                string Datei = e.Argument.ToString();
                byte[] Buffer;
                MD5CryptoServiceProvider MD5;
                FileStream FS = new FileStream(@Datei, FileMode.Open, FileAccess.Read);
                MD5 = new MD5CryptoServiceProvider();
                Buffer = MD5.ComputeHash(FS);
                
                string HashDatei = System.BitConverter.ToString(Buffer).Replace("-", "");
                HashDatei = HashDatei.ToLower();
                e.Result = HashDatei;
                FS.Close();
            }
            else if (rdbPasswortHash.Checked == true)
            {
                string Pass = e.Argument.ToString();
                MD5 md5 = new MD5CryptoServiceProvider();
                byte[] PassDatenBuffer = Encoding.Default.GetBytes(Pass);
                byte[] HashDatenBuffer = md5.ComputeHash(PassDatenBuffer);
                
                string Hash = System.BitConverter.ToString(HashDatenBuffer).Replace("-", "");
                Hash = Hash.ToLower();
                e.Result = Hash;
            }
        }

        private void bgwVortschritt_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            pgbVortschritt.Value = e.ProgressPercentage;
        }
07.09.2006 - 09:00 Uhr

Ich verwende die Folgende Funktion Um einen Datei Hash zu erzeugen.

private string DateiHash(string Datei)
        {
            byte[] Buffer;
            MD5CryptoServiceProvider MD5;
            FileStream FS = new FileStream(@Datei, FileMode.Open, FileAccess.Read);
            MD5 = new MD5CryptoServiceProvider();
            Buffer = MD5.ComputeHash(FS);
            FS.Close();

            string HashDatei = System.BitConverter.ToString(Buffer).Replace("-", "");
            HashDatei = HashDatei.ToLower();
            return HashDatei;
        }

Da dies bei größeren Dateien etwas dauern kann würde ich den vorschritt gerne in einer Progressbar anzeigen ich hab aber keinen Schimmer wie.

Wehre echt super wen mir jemand helfen könnte.

08.09.2005 - 16:49 Uhr

Danke DaSchroeter genau das habe ich gesucht läuft einbanfrei. 👍 👍 👍

08.09.2005 - 16:23 Uhr

Hallo,

ich habe ein string Array mit beliebiger Größe (min 100) und ich will prüfen ob keiner der Inhalte Doppelt ist. Mir fallen aber nur sehr umständliche Wege ein. Wäre super en mir jemand eine einfache nennen könnte (falls es eine gibt).

31.08.2005 - 09:17 Uhr

Danke

31.08.2005 - 08:32 Uhr

Hallo

Ich habe eine Frage gibt es eine Möglichkeit zu prüfen ob der inhalt einer Integer Variablen eine grade oder ungerade Zahl ist.

19.08.2005 - 22:50 Uhr

das wars was ich wissen wollte danke.

Nein ich erwart keinen fertigen Code sonst hätte ich mich ja beschwert das keine Verweise in dem Beispil forhanden sind wiel sowas is imer nur ne grunglage und nicht mehr. Ich stehe halt nur manchmal auf dem Schlach vorallem weil ich heut sehr viel stress hatte und vs.net in der Firma auch noch spint und stendig fehler ferursacht die keine sind du weisst bestimt wie das mach mal ist.
Ich poste auch relativ selten selber Fragen sondern suche mir den Kram zusammen den ich brauch aber zu dem Thema gibt es ja sogut wie nirgens etwas.

19.08.2005 - 22:18 Uhr

Hallo Programmierhans

is echt super aber nenn bisel was stimt noch nicht wies nicht ob es an mir liegt die Backspace tasste geht nicht. Und er schreib dalles hintereinander kanst du mir noch sagen wie ich das umbigen kann?

Hallo Rainbird

were echt super würde das gerne auch mal testen.

19.08.2005 - 09:23 Uhr

Noch ne Frage,

Was soll die Variable ConsoleWindowHandle enthalten beziehungsweise welchen Parameter muss ich da Übergeben?

19.08.2005 - 08:18 Uhr

Danke für die schnelle Hilfe werde beides mal testen.

19.08.2005 - 00:23 Uhr

schade
wies dann fileicht jemand wie ich etws ähniches selber schreiben kann?

19.08.2005 - 00:16 Uhr

erklerst du mir vieleicht auch wie ich es so in meine form intigrire wäre echt net.

edit ich würde es gerne in einem MdiConteiner öffnen

18.08.2005 - 23:44 Uhr

Ja indem fall schon also geht es oder nicht

18.08.2005 - 23:37 Uhr

Hallo,

Gibt es eine Möglichket ein Consolenfenster in eine Form zu intigriren.