Laden...

Forenbeiträge von Qt21580 Ingesamt 204 Beiträge

16.05.2006 - 10:10 Uhr

Hallo Krieger

Die TestApp läuft auf dem Rechner wo der MySQL Server installiert ist.
Wie gesagt mit localhost auf dem Rechner geht's, mit der IP aber nicht.
Ich kann im IE auch mit localhost oder der IP zugreifen.

Muss ich da etwas beim MySQL Server ändern.

Mfg.:

15.05.2006 - 20:41 Uhr

Hallo zusammen

Ich habe ein Problem mit meinem Connection String zu einer MySql DB.


// Das Funkt
				myConn = new MySqlConnection("Data Source=localhost;Initial Catalog=test_vote;User ID=root;PWD=123456");
this.myConn.ConnectionString;

// Das funkt nicht
				myConn = new MySqlConnection("Server=192.168.0.102;Database=test_vote;Uid=root;Pwd=123456;" );

Wie kann über das Netzwerk auf meine DB zugreifen

Fehlermeldung:
'HY000Host 'ServerName' is not allowed to connect to this MySQL Server

Mfg.:

15.05.2006 - 09:38 Uhr

Danke erstmal für die Antworten

Hallo feadur
Ist ein Rechtsschreibfehler

Also ist mein Weg den ich oben beschrieben habe richtig....

15.05.2006 - 08:54 Uhr

Hallo und Guten Morgen

Ich krieg den den Sinn von diesen Schnittstellen nicht ganz auf die Reihe.
Vielleicht kann mir von euch da jemand weiterhelfen.

Folgendes Beispiel
Ich mach eine MDI-Anwendung, in dieser AW habe ich einen Speichern Button.
Wenn ich auf Speichern drücke soll das aktive MDI-Child gespeichert werden.
(zb.: Datenbank)

Interface


using System;

namespace TestApp
{
	public interface ISaveMethod
	{
		void Save();
	}
}

Child-Form


public class ChildForm : System.Windows.Forms.Form, ISaveMethod
{
		/// <summary>
		/// Erforderliche Designervariable.
		/// </summary>
		private System.ComponentModel.Container components = null;

		public frmChild()
		{
			//
			// Erforderlich für die Windows Form-Designerunterstützung
			//
			InitializeComponent();

		}
         .
         .
         .

		public void Save()
		{
			//......
			//......
			//Speichern
			//......
			//......
			//MessageBox.Show(this.Text);
		}
}

Main-Form


		private void button1_Click(object sender, System.EventArgs e)
		{

			Form frmVisible = this.ActiveMdiChild;
			ISaveMethod met = (IChildMethods) this.frmVisible;
			met.Save();
		}

Ich weiß nicht einmal ob ich auf den richtigen Weg bin so wie ich es gemacht habe.
Die Save Methode muß das Child-Form Implementieren oder ???????
Diese Methode muß öffentlich sein oder ?????

So, jetzt sind wir da was ich nicht ganz auf die Reihe kriege ->
Das diese Methode öffentlich sein muß kann ich es doch auch ganz einfach so machen.


		private void button2_Click(object sender, System.EventArgs e)
		{
			ChildForm f = new ChildForm();
			f.Save();
		}

Also warum sollte man den Weg über ein Interface gehen, ist doch umständlicher.

Ps.: In einem C# Buch von mir steht das man auf public methoden oder Variablen verzichten sollte,
aber mit so einer Schnittstelle mache ich das ganze doch auch public oder.

Bitte um eine Erklärung

03.05.2006 - 20:30 Uhr

Hallo Hauptmann

Bin leider mit den WinAPI Funktionen nicht so bewandert.
Kannst du mir villeicht noch ein bisschen mehr auf die Sprünge helfen.

02.05.2006 - 21:02 Uhr

Hallo Leute!

Ich hätte da mal ein wahrscheinlich ganz blöde Frage.

Und zwar................
Ist es möglich einen Process den ich gestartet habe immer im Vordergrund zu halten so eine Art OwnedForm nur eben mit einem externen Process.

Gutes Beispiel wäre der Windows Rechner.

Ich rufe diesen auf mit Process.Start("calc.exe").

Wie kann ich diesen dann immer im Vordergrund halten auch wenn ich in meinem Prog auf einen Button drücke z.b.:

19.04.2006 - 19:50 Uhr

Hallo Leute

Ich stehe gerade vor einem ziemlich lästigen Problem.

Ich habe hier im Forum einen Beitrag gefunden in dem erklärt wird wird wie man
eine lnk-Datei macht.

*****************************************************************
// Name der zu erzeugenden Verknüpfungs-Datei
string linkFileName = "C:\Testlink.lnk";

//string linkFileName = dlgOpenFile.FileName + ".lnk";
string path = Path.Combine(Environment.SystemDirectory, "notepad.exe");

// Argumente für den Aufruf
string arguments = Path.Combine(Environment.SystemDirectory, dlgOpenFile.FileName);

*****************************************************************

Wenn ich mit dem Öffnen Dialog jetzt eine Datei auswähle die ich verknüpfen will,
braucht die Klasse den Namen des ausführbaren Programmes (path).

Wie kann ich das lösen wenn ich zum Beispiel "C:\test.txt" aussuche das ich der Klasse dann zum Bsp.: notpad.exe mitgebe.
Ich brauche also den Namen des Ausführbaren Programmes ohne das ich einen Process starte.

Bitte um Hilfe????????????????????????????????????????????

19.02.2006 - 11:02 Uhr

Hallo Roman
Ich mach das immer so.......


string pfad = Application.StartupPath + @"\datenbank.mdb"

dann nimmt das prog die DB vom Anwendungsordner?????

Ich hoffe ich konnte dir helfen

19.02.2006 - 10:57 Uhr

Kann mir hier den keiner weiterhelfen

Ich habe es jetzt soweit hinbekommen daß ich einen Detaildatensatz hinzufügen kann, aber das auch erst nach zwimaligem drücken auf die Schaltfläche.
Also nach dem 2.mal cmDet.AddNew() bekomme ich einen Detaildatensatz.

Also das funkt nicht so richtig.

Aber wie kann ich einen Masterdatensatz anlegen.
Wenn ich cm.AddNew() mache legt er zwar einen Masterdatensatz jetzt an aber
die Detailtabelle bleibt unverändert.

Also wenn ich einen Datensatz von der DB lade mit **SELCT-String FROM Tabelle
WHERE m_kunr = 123456 ** dann bekomme ich den Datensatz mit den Details und wenn ich jetzt einen neuen anlegen möchte dann sollte er einen neuen MasterDS anlegen und die DetailDS im DataGrid sollten verschwinden oder
irre ich mich da.

Bitte um HILFE

18.02.2006 - 21:06 Uhr

Hallo alle zusammen

Ich habe ein massives Problem mit einer DataRelation????????

Mein Problem ist folgendes.....
Ich habe eine Form mit einigen Textfeldern und ein DataGrid
Das ist ein Kundenformular wo ich zu jedem Kunden ein od. mehr Kontaktpersonen eingeben kann.

Ich poste hier mal meinen OnLoad() Code.


		private OleDbDataAdapter daKunden, daAnrede, daKontaktPers;
		private DataSet ds;
		private DataRowView drv;
		private CurrencyManager cm, cmDet;

		protected override void OnLoad(EventArgs e)
		{
			base.OnLoad (e);

			this.ds = new DataSet();
			string[] colsKunden = { "m_kunr", "m_anrede", "m_name", "m_strasse", "m_plz", "m_ort", "m_tel", 
									"m_hdy", "m_fax", "m_email", "m_web", "m_notitz", "m_ansprechpartner",
									"m_atunr", "m_datum", "m_gebdat", "m_newsletter" };
			this.daKunden = LoadData.daValue(this.ds, colsKunden, "myContacts", "m_kunr", "201001");
			this.daKunden.InsertCommand = this.BuildInsertCommand("m_kunr", this.ds.Tables["myContacts"]);
			this.daKunden.UpdateCommand = this.BuildUpdateCommand("m_kunr", this.ds.Tables["myContacts"]);

			string[] colsKontaktPers = { "m_kunr", "m_anrede", "m_name", "m_tel", "m_fax", "m_email", "m_raum" };
			this.daKontaktPers = LoadData.daValue(this.ds, colsKontaktPers, "myKontaktpersonen", "m_kunr", "201001");

			string[] colsAnrede = { "m_id", "m_anredetext" };
			this.daAnrede = LoadData.daValue(this.ds, colsAnrede, "myAnrede", "m_id", null);

			this.ds.Relations.Add("KundenKontaktPersonen", this.ds.Tables["myContacts"].Columns["m_kunr"], 
				this.ds.Tables["myKontaktpersonen"].Columns["m_kunr"]);

			this.txtKuNr.DataBindings.Add("Text", this.ds.Tables["myContacts"], "m_kunr");
			this.txtName.DataBindings.Add("Text", this.ds.Tables["myContacts"], "m_name");
			this.txtStrasse.DataBindings.Add("Text", this.ds.Tables["myContacts"], "m_strasse");
			this.txtPlz.DataBindings.Add("Text", this.ds.Tables["myContacts"], "m_plz");
			this.txtOrt.DataBindings.Add("Text", this.ds.Tables["myContacts"], "m_ort");
			this.txtTel.DataBindings.Add("Text", this.ds.Tables["myContacts"], "m_tel");
			this.txtHdy.DataBindings.Add("Text", this.ds.Tables["myContacts"], "m_hdy");
			this.txtFax.DataBindings.Add("Text", this.ds.Tables["myContacts"], "m_fax");
			this.txtEmail.DataBindings.Add("Text", this.ds.Tables["myContacts"], "m_email");
			this.txtWeb.DataBindings.Add("Text", this.ds.Tables["myContacts"], "m_web");
			this.txtNotiz.DataBindings.Add("Text", this.ds.Tables["myContacts"], "m_notitz");
			this.txtKontaktPers.DataBindings.Add("Text", this.ds.Tables["myContacts"], "m_ansprechpartner");
			this.txtAtuNr.DataBindings.Add("Text", this.ds.Tables["myContacts"], "m_atunr");
			this.txtDatum.DataBindings.Add("Text", this.ds.Tables["myContacts"], "m_datum");
			this.txtGebDatum.DataBindings.Add("Text", this.ds.Tables["myContacts"], "m_gebdat");
			this.chkNews.DataBindings.Add("CheckedValue", this.ds.Tables["myContacts"], "m_newsletter");

			this.cboAnrede.DataSource = this.ds.Tables["myAnrede"];
			this.cboAnrede.DisplayMember = "m_anredetext";
			this.cboAnrede.ValueMember = "m_id";
			this.cboAnrede.DataBindings.Add("Value", this.ds.Tables["myContacts"], "m_anrede");

			this.dgKontaktPers.DataSource = this.ds.Tables["myContacts"].DefaultView;
			this.dgKontaktPers.DataMember = "KundenKontaktPersonen";

			//this.cm = (CurrencyManager) this.BindingContext[this.ds.Tables["myContacts"], "KundenKontaktPersonen"];
			this.cm = (CurrencyManager) this.BindingContext[this.ds.Tables["myContacts"]];
			//this.cm = (CurrencyManager) this.BindingContext[this.ds, "myContacts"];
			this.cmDet = (CurrencyManager) this.BindingContext[this.ds.Tables["myContacts"], "KundenKontaktPersonen"];
		}

Mein Problem

  1. Wenn ich einen neuen Datensatz anlegen möchte passiert nichts
    cm.AddNew()
  2. Wenn ich eine neue Kontaktperson eingeben möchte passiert auch nichts
    cmDet.AddNew()

Kann mir da villeicht jemand helfen
Ps.: Bin am verzweifeln

10.02.2006 - 09:48 Uhr

Also ich habe eine HauptForm mit einem DataGrid wo ich meine Daten anzeige.

Ich möchte dann einen Datensatz editieren können in einer neuen Form,
da habe ich auch ein SelectCommand.
Aber wie mache ich das wenn ich einen neuen Datensatz anlegen möchte und
diesen dann aber schon in der zweiten Form speichern will und nicht in der HauptForm.

Bsp.: MS-Outlook (Kontakte anlegen)

mfg.

09.02.2006 - 21:28 Uhr

Hallo zusammen

Ich habe da mal eine ganz blöde Frage?????????

Kann man eigentlich einen Datenadapter ohne einen SelectCommand befüllen.

Zb. nur mit einer DataTable die ich vorher mit DataReader fülle.

Funzt nicht
da.Fill(meineTabelle);

Fehlermeldung:
Eine nicht behandelte Ausnahme des Typs 'System.InvalidOperationException' ist in system.data.dll aufgetreten.

Zusätzliche Informationen: Die SelectCommand-Eigenschaft wurde nicht initialisiert vor dem Aufruf von: 'Fill'.

Kann mir da jemand helfen???????????????????????????????????????????

31.01.2006 - 21:57 Uhr

Hallo,
weiß einer von euch, wie der Aufbau (Dateistruktur) von einer DataNorm v.5 aussieht, bzw. wo ich Infos dazu finden kann?

mfg
Qt21580

27.01.2006 - 15:13 Uhr

Hallo Boris

Das ist meine Methode für den Aufruf


ManipulateData manip = new ManipulateData();

string[] arrSql = { "SELECT * FROM Kunden WHERE kunr = ?", "SELECT * FROM Kundendetails WHERE kunr = ?", "SELECT * FROM Kontaktpersonen WHERE kunr = ?", "SELECT * FROM Kundensparte WHERE sparte_id = ?" };

SortedList sListRel = new SortedList();
sListRel.Add("Kundentabelle", new string[]{ "Kunden", "kunr", "Kundendetails", "kunr", "true" } );
sListRel.Add("Kontaktperson", new string[] { "Kunden", "kunr", "Kontaktpersonen", "kunr", "true" } );
sListRel.Add("Sparte", new string[] { "Kunden", "x_sparte", "Kundensparte", "sparte_id", "true" } );

manip.LoadOledbData(arrSql, 1, OleDbType.Char, ParameterDirection.Input, sListRel);

Hier wird das ganze abgearbeitet


public void LoadOledbData(string[] arr_SqlString, object oParam, OleDbType type, 
	ParameterDirection ParamDir, SortedList sListRel)
{
    string m_TableName = String.Empty;

    //Connection String
    this.oledbConn.ConnectionString = this.connstr.Connectionstring;

    //Erzeugen der Objekte
    this.arr_da = new OleDbDataAdapter[arr_SqlString.Length];
    this.arr_cmd = new OleDbCommand[arr_SqlString.Length];
    this.arr_rel = new DataRelation[sListRel.Count];

    this.ds = new DataSet();
    this.oledbConn.Open();

    for(int i=0; i<arr_SqlString.Length; i++)
    {
        this.arr_cmd[i] = new OleDbCommand(arr_SqlString[i], this.oledbConn);

        //-------------------------------
        //Parameterwerte setzen
        this.param = new OleDbParameter("@p", type);
        this.param.Direction = ParamDir;
        this.param.Value = oParam;
        this.arr_cmd[i].Parameters.Add(this.param);
        //-------------------------------

        //Neuer DatenAdapter
        this.arr_da[i] = new OleDbDataAdapter(this.arr_cmd[i]);

        //Tabellennamen auslesen
        m_TableName = arr_SqlString[i].Remove( arr_SqlString[i].LastIndexOf(" WHERE"), arr_SqlString[i].Length - arr_SqlString[i].LastIndexOf(" WHERE") );
        m_TableName = m_TableName.Split(' ')[m_TableName.Split(' ').Length-1];

        //DatenAdapter füllen
        this.arr_da[i].Fill(this.ds, m_TableName);
}
			
this.oledbConn.Close();

for(int i=0; i<sListRel.Count; i++)
{
    //Das String Array das mit der SortedList übergeben wird
    this.m_TempArr = (string[])sListRel.GetByIndex(i);

    //Beziehung zwischen den Tabellen herstellen
    this.arr_rel[i] = this.ds.Relations.Add(sListRel.GetKey(i).ToString(), this.ds.Tables[m_TempArr[0]].Columns[m_TempArr[1]],
    this.ds.Tables[m_TempArr[2]].Columns[m_TempArr[3]], Convert.ToBoolean( m_TempArr[4] ));

}

Methode zum speichern


public void DaveData(BindingManagerBase bm)
{
    bm.EndCurrentEdit();
    if(ds.HasChanges())
    {
        for(int i=0; i<this.arr_da.Length; i++)
        {
            this.cmdBuilder = new OleDbCommandBuilder(this.arr_da[i]);
            this.arr_da[i].InsertCommand = this.cmdBuilder.GetInsertCommand();
            this.arr_da[i].UpdateCommand = this.cmdBuilder.GetUpdateCommand();
            this.arr_da[i].DeleteCommand = this.cmdBuilder.GetDeleteCommand();

            this.arr_da[i].Update(ds.Tables["Kundendetails"]);
        }
    }
}

Und das ist die Fehlermeldung die ich bekomme

Eine nicht behandelte Ausnahme des Typs 'System.InvalidOperationException' ist in system.data.dll aufgetreten.

Zusätzliche Informationen: Die OleDbCommand.Prepare-Methode erfordert, dass für alle variablen Längenparameter explizit eine nicht-Null Größe festgelegt wird.

Ich du kannst mir helfen
Mfg.:

27.01.2006 - 12:48 Uhr

Das mir der Relation habe ich jetzt hinbekommen.

Aber schon ist das nächste Problem aufgetaucht??????????????????

Wie kann ich ein OleDbDataAdapter Array in die DB zurückschreiben.

Ich hole mir so meine Daten->


.
.
.
OleDbDataAdapter[] da = new OleDbDataAdapter[2];
for(int i=0; i<da.Lenght; i++)
{
    da[i].Fill(DataSet, "Tabellenname");
}

//Herstellen der Beziehung

Also wie geagt die Ralation funzt aber ich kann die Daten nicht in die Db schreiben.


private void Save()
{
    bm.EndCurrentEdit();
    if(ds.HasChanges())
    {
        for(int i=0; i<da.Lenght; i++)
        {
            OleDbCommandBuilder cmdBuild = new OleDbCommandBuilder(da[i]);
            da[i].InsertCommand  = cmdBuild.InsertCommand();
            da[i].UpdateCommand  = cmdBuild.UpdateCommand();
            da[i].DeleteCommand  = cmdBuild.DeleteCommand();

            da[i].Update(DataSet, "TabellenName");
        }
    }
}

Mit dem OleDbCommandBuilder geht das ganze beim Generieren der Command schon schief.

Ich glaube die Fehlermeldung lauted irgendwie so dass der
OledbCommand cmd.Prepare() mit variabler Länge darf nicht NULL sein.

Kann mir da jemad helfen wie ich das lösen kann?????????????????

26.01.2006 - 13:20 Uhr

Danke erstmal

Die BindingManagerBase verwewnde ich zum Blättern in einem Formular
geht auch mit dem CurrencyManager.

Kann man mit einem zusammengesetzten SQL-String sprich JOIN's auch durch ein Formular navigieren und dann das Update Command ausführen??????????????

26.01.2006 - 10:07 Uhr

Danke erstmal für die Antworten

Also ich versuche es genauer zu erklären

Die Datenbank ist eine MS Access DB

  1. Ich habe eine Tabelle mit den Grobinformationen zu den Kunden*KuNr (Key->AutoWert) *Sparte (Zahl) *Name/Firma *Notitz *Datum

  2. Die Detailtabelle beinhaltet die Adressinformationen*Detail_ID (Key->AutoWert) *KuNr (Key->Zahl) *Strasse *Nr *Ort/Stadt *PLZ *Tel
    usw....

  3. Die Tabelle mit den Sparten*Sparte_ID (Key->AutoWert) *Sparte


conn.ConnectionString = connectionstring;
cmdKunden = new OleDbCommand("SELECT * FROM tab_Kunden", conn);
cmdKundenDet = new OleDbCommand("SELECT * FROM tab_Kunden_Det", conn);
daKunden = new OleDbDataAdabter(cmdKunden);
daKundenDet = new OleDbDataAdabter(cmdKundenDet);
DataSet ds = new DataSet();
conn.Open();
daKunden.Fill(this.ds, "Kunden");
daKundenDet .Fill(this.ds, "Kundendetails");
conn.Close();

DataReletion relKundenInfo = this.ds.Relation.Add("Kontakte", this.ds.Tables["tab_Kunden"].Columns["KuNr"], this.ds.Tables["tab_Kunden_Det"].Columns["KuNr"]);

Wenn ich die Relation zwischen den Tabellen so herstelle funktionierts aber
wie mache ich das wenn ich nur den Kunden mit der KuNr 1 und die
zugehörigen Detaildaten anzeigen möchte.


conn.ConnectionString = connectionstring;
cmdKunden = new OleDbCommand("SELECT * FROM tab_Kunden WHERE KuNr = 1", conn);
cmdKundenDet = new OleDbCommand("SELECT * FROM tab_Kunden_Det", conn);
daKunden = new OleDbDataAdabter(cmdKunden);
daKundenDet = new OleDbDataAdabter(cmdKundenDet);
DataSet ds = new DataSet();
conn.Open();
daKunden.Fill(this.ds, "Kunden");
daKundenDet .Fill(this.ds, "Kundendetails");
conn.Close();

DataReletion relKundenInfo = this.ds.Relation.Add("Kontakte", this.ds.Tables["tab_Kunden"].Columns["KuNr"], this.ds.Tables["tab_Kunden_Det"].Columns["KuNr"]);

Ich möchte die Daten von der MasterTabelle in dem Fall (tab_Kunden) in einem
DataGrid anzeigen und wenn ich auf Bearbeiten gehe soll ein Dialog geöffnet
werden mit dem ich die Daten zu dem Kunden dann editieren kann.
Also ich muss das ganze mit einer WHERE-Klausel oder einem Parameter bewältigen können.

Aber das funzt bei mir irgendwie nicht????????????????????????????????????

Die Fehlermeldung die ich dann bekomme habe ich jetzt leider nicht im Kopf.
Auf jedenfall gehts schief.

Ich hoffe ich konnte mein Problem einigermassen erklären

Ps.: Der Code ist nur Schemenhaft dargestellt.

Ich kann also mit einem zusammengesetzten SQL-String nichts anfangen da
ich im Dialog dann mit der BindingManagerBase arbeiten muss....

Mfg.:

25.01.2006 - 22:10 Uhr

Hallo zusammen
Ich habe ein Problem mit einer Relation

Ich habe zwei Tabellen
Kunden Tabelle
Detail Tabelle zu den Kunden

In der Kundentabelle wird der Name usw. gespeichert
In der Detailtabelle die Adressdaten

Also wenn ich die Datensätze mit SELECT * FROM hole, dann funzt die Relation,
aber wenn ich eine WHERE-Klausel in den SQL-String einbaue geht das ganze schief.

Also ich möchte z.b.: nur die Kunden mit der KuNr 1 laden und deren
Details anzeigen die können jedoch mehr Adressdaten beinhalten.

Kann mir jemand erklären warum das so ist???????????

22.01.2006 - 20:40 Uhr

Hallo Forum!
Ich hätte da mal eine allgemeine frage.
Warum sollte man bei einem Projekt auf eine Interface-Schnittstelle nicht verzichten??

Vorteile??

Nachteile??
Mehr Tipslarbeit

Ps.: Ich versteh denn sinn nicht ganz.
mfg

15.01.2006 - 11:30 Uhr

Danke für deine Hilfe.
Ich werd versuchen das auf die Reihe zu kriegen.

14.01.2006 - 20:45 Uhr

Ich weiss nicht was ich mit dem Schwellwert machen soll und meinst du ich
sollte über die Grafik einen Raster legen.

Angenommen das Bild ist ein klein wenig versetzt.
In so einem Fall brauche ich einen Ausgangspunkt auf der Grafik wo ich
ein Rechteck zeichne und dieses dann px-weise auslese.
Aber wie bekomme ich so einen Ausgangspunkt ohne Bilderkennung also auf eine "relativ einfache Weise".

Ps.: Von Grafikprogrammierung habe ich noch keine Ahnung.

14.01.2006 - 20:07 Uhr

Danke erstmal für die Antwort herbivore.

Mir ist beim posten ein Fehler unterlaufen.

Die Bilder werden auf einem Stativ aufgenommen, aber ich habe trotzdem keinen
Ansatz wie ich anfangen soll. Vielleicht kannst du mir ein kleines Anfangsbeispiel posten.

Danke nochmal.

14.01.2006 - 16:07 Uhr

Hallo zusammen ich bin's nocheinmal

Und zwar geht es um meinen Bildvergleich den ich schon gepostet hab.

Bilder vergleichen

Ich habe zwar jetzt den Dreh herausen mit dem vergleichen der beiden Bilder.
Das Prog macht mir zwar meine Rechtecke wo der Unterschied liegt aber
jetz habe ich noch folgendes Problem und zwar funzt das ganze nur mit zwei
Bildern wo ich eines selbst ein kleinwenig manipuliert habe.

Ich möchte aber zwei Bilder vergleichen die von einer DigiCam gemacht werden.
Kann mir da BITTE jemand weiterhelfen wie ich da anfangen soll.

Habe zu diesem Thema schon im Internet gesucht und auch etwas gefunden...
(wie z.b.: eine Kantenerkennung)

Ps.: Weiß aber absolut nicht wie ich da anfangen soll....

11.01.2006 - 14:50 Uhr

Die Rechtecke bei den Bildern habe ich selbst gezeichnet.
Das Prog sollte mir quasi das rote Rechteck zeichnen.

11.01.2006 - 11:00 Uhr

Hallo alle zusammen

Ich habe ein Problem mit GDI+, und zwar möchte ich zwei Bilder auf deren Unterschied kontrollieren.

Ich versuche mal mein Problem zu schildern.

Ich habe ein Originalbild das so aussehen könnte....

und ein Bild zum vergleichen das so aussehen kann

Das grüne Rechteck ist mein Bereich zum vergleichen und das rote Rechteck ist der Fehler.

Mit GetPixel() bekomme ich zwar unterschiedliche Werte, aber wie krieg ich das
hin daß mir das Progi sagt wo der Unterschied liegt.

Ps.: Ich hoffe mein Problem einigermaßen geschildert zu haben.
Bin für jeden Lösungsansatz dankbar.
Habe die Bilder noch als Anhang bereitgestellt.

22.11.2005 - 09:52 Uhr

Hi, alle zusammen

Ich habe folgendes Problem
Ich möchte mir selber einen Bricht basteln also ich habe den Seitenrand auf 2cm
eingestellt das funktioniert auch auf dem Bildschirm aber nicht auf dem Drucker.
Das Rechteck(Druckbarer Bereich ist verschoben).

Nun habe ich etwas bei Codeproject gefunden wie man dieses korrigieren kann.
Jetzt funktioniert es zwar auf dem Drucker, aber dafür ist das Rechteck auf dem Billdschirm vershoben.

Was kann man dagegen machen.

Ps.: Soll auf dem Bildschirm zentriert sein und auf dem Ausdruck.

Bin dankbar für jede Hilfestellung

23.10.2005 - 19:44 Uhr

Hallo Forum

Mir fehlt bei folgendem Problem eine Idee zu einsteigen.

Ich möchte folgendes machen:
Ich habe eine MainForm mit einem DataGrid und eine zweite Form mit Textfeldern usw.:
Ich möchte jetzt mittels einer Klasse Daten in das DataGrid schreiben aber von
der zweiten Form aus, also ich gebe in Form2 Daten ein und diese sollten im
DataGrid angezeigt werden, dieses ist jedoch in Form1(MainForm).
Das ganze funktioniert zwar mit einem Dialogfeld(also mit DialogResult).
Das möchte ich aber nicht, mann soll z.b.: in Form2 Daten eingeben können, wenn
ich dann z.b.: auf OK drücke sollen die Daten in das DataGrid geschrieben werden,
Form2 soll aber nicht geschlossen werden sondern es soll die Möglichkeit für einen zweiten Eintrag bestehen usw. bis ich Form2 schliesse.

Ich hoffe ich habe mein Problem einigermassen erklärt.

Bin für jeden Ansatz dankbar............................

15.10.2005 - 01:16 Uhr

Hallo zusammen

Ich hätte da mal eine Frage zum Thema Manipulieren von Bildern.

Die Bildgrösse ändern und diese Datei komprimieren wie bei Photoshop
Für Web Speichern unter, also z.b.: auf 72 DPI setzen und dann speichern.

Danke im voraus

14.10.2005 - 11:51 Uhr

Einführungsbeispiel: Zugriff auf die Nordwind-Datenbank


using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace WindowsApplication1
{
	/// <summary>
	/// Zusammendfassende Beschreibung für Form1.
	/// </summary>
	public class Form1 : System.Windows.Forms.Form
	{
		internal System.Windows.Forms.Button Button2;
		internal System.Windows.Forms.Button Button1;
		internal System.Windows.Forms.DataGrid DataGrid1;
		private System.Data.OleDb.OleDbCommand oleDbSelectCommand1;
		private System.Data.OleDb.OleDbCommand oleDbInsertCommand1;
		private System.Data.OleDb.OleDbCommand oleDbUpdateCommand1;
		private System.Data.OleDb.OleDbCommand oleDbDeleteCommand1;
		private System.Data.OleDb.OleDbDataAdapter oleDbDataAdapter1;
		private System.Data.DataSet dataSet1;
		private System.Data.OleDb.OleDbConnection oleDbConnection1;
		/// <summary>
		/// Erforderliche Designervariable.
		/// </summary>
		private System.ComponentModel.Container components = null;

		public Form1()
		{
			//
			// Erforderlich für die Windows Form-Designerunterstützung
			//
			InitializeComponent();

			//
			// TODO: Fügen Sie den Konstruktorcode nach dem Aufruf von InitializeComponent hinzu
			//
		}

		/// <summary>
		/// Die verwendeten Ressourcen bereinigen.
		/// </summary>
		protected override void Dispose( bool disposing )
		{
			if( disposing )
			{
				if (components != null) 
				{
					components.Dispose();
				}
			}
			base.Dispose( disposing );
		}

		#region Windows Form Designer generated code
		/// <summary>
		/// Erforderliche Methode für die Designerunterstützung. 
		/// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
		/// </summary>
		private void InitializeComponent()
		{
			this.Button2 = new System.Windows.Forms.Button();
			this.Button1 = new System.Windows.Forms.Button();
			this.DataGrid1 = new System.Windows.Forms.DataGrid();
			this.dataSet1 = new System.Data.DataSet();
			this.oleDbSelectCommand1 = new System.Data.OleDb.OleDbCommand();
			this.oleDbConnection1 = new System.Data.OleDb.OleDbConnection();
			this.oleDbInsertCommand1 = new System.Data.OleDb.OleDbCommand();
			this.oleDbUpdateCommand1 = new System.Data.OleDb.OleDbCommand();
			this.oleDbDeleteCommand1 = new System.Data.OleDb.OleDbCommand();
			this.oleDbDataAdapter1 = new System.Data.OleDb.OleDbDataAdapter();
			((System.ComponentModel.ISupportInitialize)(this.DataGrid1)).BeginInit();
			((System.ComponentModel.ISupportInitialize)(this.dataSet1)).BeginInit();
			this.SuspendLayout();
			// 
			// Button2
			// 
			this.Button2.Location = new System.Drawing.Point(280, 176);
			this.Button2.Name = "Button2";
			this.Button2.Size = new System.Drawing.Size(144, 40);
			this.Button2.TabIndex = 5;
			this.Button2.Text = "Beenden";
			this.Button2.Click += new System.EventHandler(this.Button2_Click);
			// 
			// Button1
			// 
			this.Button1.Location = new System.Drawing.Point(8, 176);
			this.Button1.Name = "Button1";
			this.Button1.Size = new System.Drawing.Size(144, 40);
			this.Button1.TabIndex = 4;
			this.Button1.Text = "Start";
			this.Button1.Click += new System.EventHandler(this.Button1_Click);
			// 
			// DataGrid1
			// 
			this.DataGrid1.CaptionText = "Kundenliste";
			this.DataGrid1.DataMember = "";
			this.DataGrid1.DataSource = this.dataSet1;
			this.DataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText;
			this.DataGrid1.Location = new System.Drawing.Point(8, 8);
			this.DataGrid1.Name = "DataGrid1";
			this.DataGrid1.Size = new System.Drawing.Size(416, 152);
			this.DataGrid1.TabIndex = 3;
			this.DataGrid1.Navigate += new System.Windows.Forms.NavigateEventHandler(this.DataGrid1_Navigate);
			// 
			// dataSet1
			// 
			this.dataSet1.DataSetName = "NewDataSet";
			this.dataSet1.Locale = new System.Globalization.CultureInfo("de-DE");
			// 
			// oleDbSelectCommand1
			// 
			this.oleDbSelectCommand1.CommandText = "SELECT * FROM Kunden";
			this.oleDbSelectCommand1.Connection = this.oleDbConnection1;
			// 
			// oleDbConnection1
			// 
			this.oleDbConnection1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Nordwind.mdb;Persist Security Info=F" +
				"alse;";
			// 
			// oleDbDataAdapter1
			// 
			this.oleDbDataAdapter1.DeleteCommand = this.oleDbDeleteCommand1;
			this.oleDbDataAdapter1.InsertCommand = this.oleDbInsertCommand1;
			this.oleDbDataAdapter1.SelectCommand = this.oleDbSelectCommand1;
			this.oleDbDataAdapter1.UpdateCommand = this.oleDbUpdateCommand1;
			// 
			// Form1
			// 
			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
			this.ClientSize = new System.Drawing.Size(432, 221);
			this.Controls.AddRange(new System.Windows.Forms.Control[] {
																		  this.Button2,
																		  this.Button1,
																		  this.DataGrid1});
			this.Name = "Form1";
			this.Text = "Zugriff auf lokale Access-Datenbank";
			((System.ComponentModel.ISupportInitialize)(this.DataGrid1)).EndInit();
			((System.ComponentModel.ISupportInitialize)(this.dataSet1)).EndInit();
			this.ResumeLayout(false);

		}
		#endregion

		/// <summary>
		/// Der Haupteinstiegspunkt für die Anwendung.
		/// </summary>
		[STAThread]
		static void Main() 
		{
			Application.Run(new Form1());
		}

		// Start:
		private void Button1_Click(object sender, System.EventArgs e)
		{
			try
			{
				oleDbDataAdapter1.Fill(dataSet1);
			}
			catch (Exception ex)
			{
				MessageBox.Show(ex.Message, "Fehler");
			}
		}

		// Beenden:
		private void Button2_Click(object sender, System.EventArgs e)
		{
			this.Close();
		}

		private void DataGrid1_Navigate(object sender, System.Windows.Forms.NavigateEventArgs ne)
		{
		
		}
	}
}

Ich hoffe ich konnte helfen

14.10.2005 - 11:42 Uhr

Hallo zusammen!

Ich möchte ein Prog schreiben daß auf eine MySql Datenbank zugreift.
Habe bis jetzt nur mit MS-Access gearbeitet.

Hier meine Fragen:
Wie kann ich auf meinem Rechner eine MySql Datenbank erstellen und einrichten.
Wie kann ich diesen MySql-Connecteor in C# einbinden.
Wie kann ich eine Verbindung zur DB herstellen.

Bin für alle Antworten und Lösungen dankbar.

14.10.2005 - 11:36 Uhr

Habs mit php hinbekommen.

13.10.2005 - 10:53 Uhr

Wie ist es möglich mit ASPX so einen in der art "Öffnendialog" wie bei Windows
zu realisieren? (lokal auf der Festplatte nach einer Datei suchen)

Grüße!
qt21580

16.09.2005 - 08:40 Uhr

Hallo zusammen

Ich habe ein riesiges Problem mit String Formatieren.
Habe mir von Codeproject.com ein Beispiel runtergesaugt mit dem man den
Mp3Tag auslesen kann.

Das funktioniert alles ganz wunderbar wenn ich den String in einer Textbox ausgebe oder in einem ListView, aber sobald ich den String in einem DataGrid anzeige habe ich zwar den Teilstring aber hinten auch noch ein Menge lästiger Zeichen die ich gerne beseitigen möchte.


				if(Encoding.Default.GetString(buffer, 0, 3).Equals("TAG"))
				{
					this.hasTag = true;
					this.hadTag = true;
					this.title = Encoding.Default.GetString(buffer, 3, 30).Trim();
					this.artist = Encoding.Default.GetString(buffer, 33, 30).Trim();
					this.album = Encoding.Default.GetString(buffer, 63, 30).Trim();
					this.year = Encoding.Default.GetString(buffer, 93, 4).Trim();
					this.comment = Encoding.Default.GetString(buffer, 97, 28).Trim();
					if(Convert.ToInt32(buffer[126]) <= 147)
						this.titleNumber = (Convert.ToInt32(buffer[126])).ToString().Trim();
					if(Convert.ToInt32(buffer[127]) > 0)
						this.genre = (Convert.ToInt32(buffer[127])).ToString().Trim();
				}				

Mit TRIM() sollte man eigentlich alle Leeraumzeichen entfernen können,
klappt aber nicht. Denn mein String hat Trotz Trim immer noch z.b. 30 Zeichen.

Bitte um Hilfe, bin am verzweifeln.

Danke schon mal im voraus für eure Hilfe.

24.08.2005 - 20:55 Uhr

Hallo zusammen!!!!

Ich habe ein Problem mit der Funktion AddOwnedForm().
Ich möchte in meine Anwendung so eine Art Suchen und Ersetzen Dialog einbauen,
das krieg ich aber nicht so ganz auf die Reihe....

Ich versuche mal eine kleine Beschreibung

Ich lade das Formular und mit der Funktion AddOwnedForm das zweite das immer im Vordergrund ist.

Soweit Sogut......

Mein Problem ist jetzt folgendes
Wenn ich in meine Hauptform eine Public-Methode einbaue und die dann von meinem zweiten Formular dann aufrufe
zb. mit Update, dann wird zwar die Funktion aufgerufen und ausgeführt aber es geschieht nichts.

Ich möchte zb. einen Suchbegriff eingeben oder irgendetwas anderes machen
und diesen dann in meine Hauptformular schicken und mit einer Funktion diesen mittels einer
SELECT Anweisung Daten Filtern und das Ergebniss dann in einem Dategrid anzeigen.

Ich hoffe ich habe mein Problem so einigermassen beschrieben.

Ich bin Dankbar für alle Lösungsvorschläge.......

15.06.2005 - 10:17 Uhr

Hallo zusammen!

Hätte da mal eine Frage zu CrystalReports.
Kann man mit CrystalReport ein Image dynamisch anzeigen.

Das heißt:
Ich möchte von meinem C# Programm den Bildpfad an ein Parameterfeld
in den Report schicken, und dann das Bild anzeigen.

Kann mir von euch jemand zu diesem Problem helfen.

PS.: Habe noch nie etwas mit CrystalReport zu tun gehabt..............

Danke im voraus

11.06.2005 - 16:05 Uhr

Hallo zusammen

Wie kann mit C# herausfinden welche Oberfläche beim Windows eingestellt ist.
(Beim XP) Klassische oder XP Oberfläche.

Weiß absolut nicht mehr weiter........

Ich bin für alle Vorschläge dankbar.

10.06.2005 - 01:07 Uhr

Versuchs mal damit...........


private void Filter()
{
    DataTable dtxxx = dtxxx;
    dvxxx = ds.DefaultViewManager.CreateDataView(dtxxx);

    //Mit einem Nummerischen Wert
    string sSearchNumeric = "Spaltenname = " + Suchbegriff;
    dvxxx.RowFilter = sSearchNumeric;

    //Mit einem String
    string sSearchText = Spaltenname + " LIKE '%" + Suchbegriff + "%'";
    dvxxx.RowFilter = sSearchText;

    DataGrid.DataSource = dvFind;
}

PS.: Ich hoffe es bringt dich weiter...

07.06.2005 - 00:20 Uhr

Danke für die Links

05.06.2005 - 18:21 Uhr

Danke für den Link
Werd's mal versuchen

05.06.2005 - 18:13 Uhr

Ich weiß nicht was dieses Guid macht geschweige denn wie das funktioniert.
Vielleicht kannst du mir ein kleines Beispiel zeigen

PS.: Wäre dir sehr dankbar

05.06.2005 - 18:11 Uhr

Weil ich sowas bei Rechnungen brauche.

Ich möchte als Rechnungsnummer nicht einen Autowert sondern
z.b.:2005/Autowert

mfg.:

04.06.2005 - 21:47 Uhr

Wie soll denn das mit dem GuID funktionieren

04.06.2005 - 21:33 Uhr

Hi Zusammen

In meinem DataGrid lade ich die Daten von der Datenbank beim Hinzufügen
von einem neuen Datensatz brauche ich aber schon einen gültigen Key.

Ich füge in einem Datagrid einen Datensatz hinzu habe aber noch keinen
Key und bearbeite diesen dann in einem modalen Formular.

drvKontakte = this.dvKontakte.AddNew();
_EditDataGrids.EditDataTables(drvKontakte);

public void EditDataTables(DataRowView drv)
{
    frmKontakte frm = new frmKontakte();
    frm.KontakeNeu(drv);
    frm.Dispose();
}

Beim speichern des Datensatzes im modalen Formulares bekomme ich meinen
Key, ist aber zu spät.

protected override OnLoad(EventArgs e)
{
    this.daKontakte.RowUpdated += new System.Data.OleDb.OleDbRowUpdatedEventHandler(this.OnRowUpdated);
}

private void SaveData()
{
	try
	{
		this.conn.Open();
		daKontakte.Update(dtKontakte);
	}
	catch{}
	finally
	{
		this.conn.Close();
	}

}


protected void OnRowUpdated(object sender, OleDbRowUpdatedEventArgs args)
{
	OleDbDataAdapter da;
	DataSet ds = new DataSet();

	OleDbCommand idCMD = new OleDbCommand("SELECT @@IDENTITY FROM myKunden", conn);

	IDKuNr = (int)idCMD.ExecuteScalar();

	string updStr = "UPDATE myKunden SET myKunden.KuNr = " + IDKuNr + " WHERE myKunden.ID = " + IDKuNr;
	da = new OleDbDataAdapter( updStr, conn );
	da.Fill(ds, "Test");
}

PS.: Ich hoffe mein Problem ist einigermaßen verständlich🙁

03.06.2005 - 21:01 Uhr

Hallo Leute

Wie kann ich ohne Datenkomponenten in C# den aktuellen Autowert ermitteln.

Sprich...Ich programmiere meine Komponenten selbst nicht zur Entwurfszeit.

Mein Problem was ich habe ist in einem Datagrid, wenn ich das Formular lade
ist der Autowert von der Datenbank auf den aktuellen Stand. Wenn
ich aber einen neuen Datensatz anfüge öffne ich modal ein anderes Fenster wo ich meine Daten eintrage dann schreibe ich den Datensatz in die Datenbank dort erledigt das die Datenbankengine für mich ich brauche ihn aber auch im Datagrid ohne es neu Laden zu müssen.
Ich bekomme ihn aber erst nach einem Neuladen des Formulares das möchte ich aber nicht. Mit den Komponenten von VS funktioniert das aber auch (DataSet)

Bitte kann mir jemand helfen

02.06.2005 - 13:26 Uhr

Hallo Zusammen

Problemmstellung:
Ich möchte von meinem Notebook das nur USB Anschlüsse hat auf
einen anderen Rechner (altes Modell) über eine Com-Schnittstelle
zugreiffen und Daten von dieser Festplatte sichern (NC, TXT, CNC, INI usw.).

Meine Frage:
Kann man so ein Kabel (USB-COM) käuflich erwerben.
Kann man mit C# ein kleines Programm schreiben das so etwas kann
(mit einer Benutzeroberfläche keine Konsolenanwendung),
wenn ja wie muß ich anfangen.
Die Datenfluss soll in beide Richtungen funktionieren also Sichern-Wiederherstellen.

Ich hoffe es kann mir jemend einen kleinen Gedankenstoss geben.

Mfg.: X( X(

01.06.2005 - 16:08 Uhr

Danke für die Tipps, werd's gleich mal probieren....

01.06.2005 - 13:30 Uhr

Ich habe folgendes Problem

Meine C# Anwendung braucht einige Zeit zum laden
Wie kann ich ein Splash Screen erstellen das mir im Hintergrund die
komplette Anwendung lädt, und dann erst am Bildschirm ausgibt.
(Also kein Fake).

Ich müsste also wissen wie lange das BS braucht um die komplette Anwendung
zu laden (Timer)

Vielleicht kann man etwas mit einer Bat-Datei machen.

Ich hoffe das mir jemand helfen kann....

Mfg 🙂

12.05.2005 - 17:46 Uhr

Ich arbeite seit kurzem mit dem DataGrid von Infragistics.

Mein Problem ist folgendes:
Wie kann ich das DataGrid zur Laufzeit auf ReadOnly = true setzen.

Ich hoffe es kann mir jemand helfen

14.04.2005 - 21:28 Uhr

Hallo zusammen
Habe folgenden Code geschrieben

StreamReader sr = new StreamReader("file.txt");
DataTable dt = new DataTable();
dt.Columns.Add("Spalte 1");
dt.Columns.Add("Spalte 2");
dt.Columns.Add("Spalte 3");
dt.Columns.Add("Spalte 4");
// usw.
string line = string.Empty;
DataRow dr = null;
while( (line = sr.ReadLine() )!= null )
{
dr = dt.NewRow();
int y = line.Split(' ').Length;
string[] values = line.Split( ' ' );

for(int i = 0; i &le; y; i++)  
{  
     dr_ = values_;  
}  

dt.Rows.Add( dr );  

}
dataGrid.DataSource = dt;

Wie kann ich wenn ich eine Taxtdatei so auslese und in einem Datagrid anzeige,
das DataGrid formatieren.(Spaltenbreite, Textausrichtung, usw...)
Auf den Weg wie ich ihn kenne mit

DataAdapter.FillShema(ds, ShemaTyp.Mapped, "Tabelle")
DataAdapter.Fill(ds, "Tabelle")


DataGridColumnStyles dgts = new DataGridColumnStyles(); dgts.MappingName = "Tabellenname";

funktionierts leider nicht.....
(habe kein DataSet und keinen DataAdapter)

Ein Problem habe ich mit diesem Code noch
Wie kann ich Umlaute, Sonderzeichen und das ß mit aus der Textdatei auslesen.
(In der Textdatei vorhanden im DataGrid dann aber nicht)

Ich hoffe es kann mir jemand helfen

13.04.2005 - 23:00 Uhr

Weiß zufällig jemand wo man kostenlose Steuerelemente bekommt oder kennt jemand von euch Infragistic, wenn ja soll oder kann man das kaufen.

Danke im voraus