Hallo,
ich suche jetzt schon den ganzen Tag und finde nichts dazu.
Ich setze mal meinen Code rein der Liest ein File in eine DATATABLE, jetzt habe ich auch schon den Primärschlüssel auf Bestellnr. gesetzt, wie kann ich soetwas abfangen das z. B. eine Meldung kommt das der Datensatz schon existiert, ich habe es schon mit Find probiert leider kommt nicht das gewollte Ergebnis.
Und wie kann ich z. B. zwei Felder als Primärschlüssel hinterlegen?
Habe gelesen das man die Feldlängen per Code einstellen kann das geht bei mir auch nicht??
#region Konstruktor
public cWareInputs()
{
//CreateDataTable();
}
#endregion
#region Methode
public void CreateDataTable()
{
// Überschrift erzeugen
if (m_WareInputs == null)
{
m_WareInputs = new DataTable("Wareneingang");
m_WareInputs.Columns.Add("Bestellnr.");
m_WareInputs.PrimaryKey = new DataColumn[] { m_WareInputs.Columns[0] };
m_WareInputs.Columns.Add("Artikelnr.");
m_WareInputs.Columns.Add("Menge");
m_WareInputs.Columns.Add("Charge");
m_WareInputsData = null;
}
else
{
m_WareInputs.Clear();
}
}
public void FillDataTable(string OrderNo, string ItemNo, string Quantity, string LotNo)
{
cWareInput OneWareInput = new cWareInput(OrderNo,ItemNo,Quantity,LotNo);
// DateTable mit Datensätze füllen
m_WareInputsData = m_WareInputs.NewRow();
m_WareInputsData[0] = OrderNo;
m_WareInputsData[1] = ItemNo;
m_WareInputsData[2] = Quantity;
m_WareInputsData[3] = LotNo;
m_WareInputs.Rows.Add(m_WareInputsData);
}
#endregion
// erweitere diese Zeile
m_WareInputs.PrimaryKey = new DataColumn[] { m_WareInputs.Columns[0] };
// z.b. so
m_WareInputs.PrimaryKey = new DataColumn[] { m_WareInputs.Columns[0],m_WareInputs.Columns[1] };
Gruß Jörg
Und wie kann ich z. B. abfragen ob ein Problem mit den Primärschlüssel ist weil er fügt es ja einfach nicht ein mehr nicht?
Fehler abfangen mit try catch
try
{
m_WareInputs.Rows.Add(m_WareInputsData);
}
catch(Exception e)
{
// Dann hier ein LOG schreiben oder den Fehler halt einfach nur abfangen
// e.Message e.StackTrace liefernDir hat mehr Infos
// evtl. einen anderen ExceptionTyp verwenden
}
Jörg
Ok klappt habe noch eine Frage habe ich schon in einen anderen Thread gestellt, aber keine Antwort bekommen.
Zwar folgendes ich speichere zusätzlich zu den Datensätzen Daten in Objekte jetzt möchte ich aber natürlich wenn ich nachträglich Daten verändern möchte z. B.
möchte ich den Datensatz im Datagrid 4711 ändern.
Besteht da eine Möglichkeit z. B. wie bei einer Hashtabelle ein Objekt mit zu hinterlegen??
Kann ich überhaupt noch von der Datagrid auf die einzelnen DataROWS zu greifen??