Laden...
E
Benutzerbeschreibung

Forenbeiträge von erick Ingesamt 9 Beiträge

17.09.2007 - 21:05 Uhr

Hallo,
Danke für die Antwort Funktioniert Super!!!

mfg Erick

17.09.2007 - 20:37 Uhr

HAllo,
funkt leider nicht Fehler "Das Token '{' kann an Position xy nicht interpretiert werden".
Meine Anweisung sieht so aus:

dvBefreiung.RowFilter = "mitglied = ({guid {" + drvMitglied["idM"].ToString() + "}})"; 

Danke für weitere Tipps mfg Erick

17.09.2007 - 04:48 Uhr

verwendetes Datenbanksystem: <MS-SQLS Server 2005 Express>

Hallo,
ich versuche verzweifelt den Row-Filter eines DataViews mit einer GUID zu Füttern aber es kommt immer einSyntaxfehler: Fehlender Operand nach dem Operator ...
Ich weiss er nimmt das Minus im GUID als Operator aber wie kann ich ihm das abgewöhnen.

Danke mfg Erick

10.09.2007 - 18:16 Uhr

Also,
wenn man eine Abfrage über z.b. 2 Tabellen mit Join ausführt siehe Code:


sql = "SELECT id, mitglied, bezeichnung, datumVon, datumBis, ";
sql += "erinnern, erinnerungszeitpunkt FROM Befreiungen INNER JOIN ";
sql += "mitglieder ON Befreiungen.mitglied = mitglieder.mitgliedsnummer ";

Kann der Commandbuilder vom Data-Adapter den Updatecode nicht selbst erstellen.
Also ist Handarbeit angesagt:


aBefreiungen.UpdateCommand = connection.CreateCommand();
sqlUpdate = "UPDATE Befreiungen SET id = ?, mitglied = ?, bezeichnung = ? ";
sqlUpdate += "datumVon = ?, datumBis = ?, erinnern = ?,erinnerungszeitpunkt = ? ";
sqlUpdate += "WHERE id = ?";
daBefreiungen.UpdateCommand.CommandText = sqlUpdate; //Parameter für Person hinzufügen
daBefreiungen.UpdateCommand.Parameters.Add("id", OdbcType.Int, 0, "id";);
daBefreiungen.UpdateCommand.Parameters.Add("mitglied", OdbcType.Int, 0, "mitglied";);
daBefreiungen.UpdateCommand.Parameters.Add("bezeichnung", OdbcType.VarChar, 100, "bezeichnung";);
daBefreiungen.UpdateCommand.Parameters.Add("datumVon", OdbcType.DateTime, 0, "datumVon";);
daBefreiungen.UpdateCommand.Parameters.Add("datumBis", OdbcType.DateTime, 0, "datumBis";);
daBefreiungen.UpdateCommand.Parameters.Add("erinnern", OdbcType.Bit, 0, "erinnern";);
daBefreiungen.UpdateCommand.Parameters.Add("erinnerungszeitpunkt", OdbcType.Int, 0, "erinnerungszeitpunkt";);

Dann Funktioniert auch die Update-Methode vom Data-Adapter.

mfg Erick

10.09.2007 - 08:08 Uhr

Habe das Problem selbst gelöst.

Danke

09.09.2007 - 16:30 Uhr

verwendetes Datenbanksystem: SQL-Server Express 2005

Hallo,
ich weiss diese Frage wurde schon einige male gestellt.
Also ich habe eine DB mit mehreren Tabellen.
Tabelle 1: Personen
Tabelle 2: Mitglieder
Tabelle 3: Taetigkeiten
.
.
.

Ein Mitglied iste eine Person und steht in Rlation mit dieser Tabelle.
Für ein mitglied gibt es gewisse Tätigkeiten somit steht die Tabelle Taetigkeitn in Relation mit der Tabelle Mitglieder.

Nun der Code wie ich auf die Tabellen zugreife:


public DataSet DatenLesen()
{
Connect();
if (daPersonen == null)
{
sqlP = "SELECT Personen.* FROM Personen WHERE (Personen.delbit =0)";
daPersonen = new OdbcDataAdapter(sqlP, connection);
cbPersonen = new OdbcCommandBuilder(daPersonen);
}
if (daMitglieder == null)
{
sqlMJoin = "SELECT m.*, personen.* FROM mitglieder AS m INNER JOIN personen";
sqlMJoin += "ON m.person = personen.id WHERE (dbo.personen.delbit = 0)";
daMitgliederJoin = new OdbcDataAdapter(sqlMJoin, connection);

sqlM = "SELECT Mitglieder.* FROM Mitglieder WHERE (Mitglieder.delbit = 0)";
daMitglieder = new OdbcDataAdapter(sqlM, connection);
cbMitglieder = new OdbcCommandBuilder(daMitglieder);
}
try
{
daPersonen.Fill(ds, "Personen";);
daMitgliederJoin.Fill(ds, "MitgliederJoin";);
daMitglieder.Fill(ds, "Mitglieder";);
relMitglieder = new DataRelation("MitgliederRelation",ds.Tables["Personen"].Columns["id"],
ds.Tables["Mitglieder"].Columns["person"]);
ds.Relations.Add(relMitglieder);
}
catch (OdbcException ex1){ throw ex1; }
catch (Exception e){ throw e; }
finally{ Disconnect(); }

return ds;
}

private void DatenAnzeigen()
{
ds = DatenLesen(); //ds = Dataset
bsPersonen.DataSource = ds; //Alle bs sind BindingSourcen
bsPersonen.DataMember = "Personen";
bsMitglieder.DataSource = ds;
bsMitglieder.DataMember = "Mitglieder";
bsMitgliederJoin.DataSource = ds;
bsMitgliederJoin.DataMember = "MitgliederJoin";
bsTaetigkeiten.DataSource = bsMitgliederJoin;
dvMitglieder = ds.Tables["MitgliederJoin"]; //dvMitglieder=DataView
}

Also das Anzeigen der Tabellen Funktioniert ja.
Die Bindingsourcen (bs..) dienen als Datasource für DatagridView ....

Wenn ich nun Datensätze ändere und in die DB zurückschreiben will werden die Änderungen nicht übernommen.
Also die Änderungen nehme ich so vor:


private void DatenAendern()
{
drvMitglied = dvMitglieder.Rows[oldRowIndex];//drvMitglied=DataRowView;
//dvMitglied=DataView
drvMitglied.BeginEdit();
drvMitglied["anrede"] = txtAnrede.Text;
drvMitglied["titel"] = txtTitel.Text;
drvMitglied["vorname"] = txtVorname.Text;
drvMitglied["nachname"] = txtNachname.Text;
drvMitglied.EndEdit();
try
{
Connect();
daPersonen.Update(dsChanges.Tables["Personen"]);
daMitglieder.Update(dsChanges.Tables["Mitglieder"]);
Disconnect(); }
}

Hier noch ein Link zu meiner Maske.

Danke im voraus für Eure Bemühungen
mfg Erick

08.06.2007 - 16:18 Uhr

Hallo,
zuerst mal Sorry für die späte Antwort.

Ich habe es mir gedacht das mir die zweite Liste nicht erspart bleibt.
Ich habe es so gelöst:
Ein ENUM mit den Werten (Nothing, Edit, New, Delete)
Bei einer Änderung Setze ich das entsprechende Flag und wähle beim sichern in die DB das passende SQL-Statement aus.

Danke

mfg Erick

05.06.2007 - 20:45 Uhr

Hallo,

ich versuche schon seite Tagen das folgende Problem zu lösen:

Im zuge meiner Projektarbeit soll ich mit Objeklisten List<Klasse> Daten aus einer DB SQL-ServerExpress auslesen und via GUI bearbeiten (Editieren, Hinzufügen, löschen).
Das ganze funktioniert soweit bis zu dem Punkt wo ih die Daten in die DB schreiben wil.
Ich weiss nähmlih nicht was ich in die DB schreiben soll also welde Datensätze haben sich geändert wurden gelöscht ......

Das ganze Projekt wurde mit Objeklisten aufgebaut um Vererbung usw. darzustellen.

Das Projekt ist folgend aufgebaut.

Fachklassen
Persistenzmamager
GUI in der Listen mit den Fachklassen als Datasource für DataGridView, Textboxen und Comboboxen dienen.

Also wie gesagt das lesen ist ja OK aber das abspeichern der Änderungen in den Objektlisten verstehe ich nicht.

Dank für Eure Hilfe

mfg Erick

11.11.2006 - 19:42 Uhr

HI,
wo kann man eine FTP-Klasse runterladen?
Ich suche schon lange nach so einer Klasse.

Danke mfg Erick