Hallo,
ich habe eine Frage, ich habe zwei Textfiles (Haupttabelle und untertabelle) die ich in ein Dataset einlese, wenn ich jetzt diese getrennt anzeigen möchte d. h. ich möchte zwei Datagrids auf einer Form haben, wenn ich eine Zeile in der Hauptform anwähle möchte ich das das zweite Datagrid (untertabelle) automatisch abhängig von den Relationen gefiltert wird?
Langt es zu wenn ich da nur einen Dataset einer Grid zuweise oder muss ich da mit Bindingsource arbeiten?
War ein Codefehler, trotzdem danke
BindingSource ist "nur" eine Hilfsklasse, du kannst auch direkt binden ohne BindingSource (empfehle ich dir nicht).
In der MSDN hat es einen Artikel namens "How to: Create a Master/Detail Form Using Two Windows Forms DataGridView Controls ". Such mal nach dem Artikel!
Langt es zu wenn ich da nur einen Dataset einer Grid zuweise oder muss ich da mit Bindingsource arbeiten?
Wie im Artikel ersichtlich ist, bindest du das zweite DataGridView an die Relation (-> dataset.Releations.Add(...)), ob du da ein BindingSource verwendest oder nicht, spielt keine Rolle. BindingSource vereinfacht vieles, da man z.b besser auf den currencymanager zugreifen kann.
Gruss,
.unreal
cWareInputs objWareInputs = cWareInputs.WareInputs;
m_WareInputsDataSet = objWareInputs.WareInputsDataSet;
// DataRelation schaffen
DataRelation WareInputRelation = new DataRelation("WareInputRelation",
m_WareInputsDataSet.Tables["Posted Ware Input"].Columns["Bestellnr."],
m_WareInputsDataSet.Tables["Ware Transfer"].Columns["Bestellnr."]);
m_WareInputsDataSet.Relations.Add(WareInputRelation);
bindingSourceWareInputs.DataSource = m_WareInputsDataSet;
bindingSourceWareInputs.DataMember = "Posted Ware Input";
dataGridWareInputs.DataSource = bindingSourceWareInputs;
Habe folgendes Problem oder ich blicke es nicht, ich benutze das Compact Framework.
Ich erstelle eine Datenrelation
jetzt ordne ich den Dataset mit Relation der bindingsource zu
danach ordne ich die bindingsource der Datagrid zu(datagridview gibt es im cf2.0 nicht)
Wie mache ich das jetzt wenn ich die zweite Tabelle zusätzlich auf der Form mit anzeigen möchte abhängig von der relation?
Als DataMember der Name der Relation angeben. Steht übrigens im MSDN-Artikel der ich dir gepostet habe drin.
.unreal
cWareInputs objWareInputs = cWareInputs.WareInputs;
m_WareInputsDataSet = objWareInputs.WareInputsDataSet;
// DataRelation schaffen
DataRelation WareInputRelation = new DataRelation("WareInputRelation",
m_WareInputsDataSet.Tables["Posted Ware Input"].Columns["Bestellnr."],
m_WareInputsDataSet.Tables["Ware Transfer"].Columns["Bestellnr."]);
m_WareInputsDataSet.Relations.Add(WareInputRelation);
bindingSourceWareInputs.DataSource = m_WareInputsDataSet;
bindingSourceWareInputs.DataMember = "Posted Ware Input";
bindingSourceWareTransfer.DataSource = m_WareInputsDataSet;
bindingSourceWareTransfer.DataMember = "Ware Transfer";
dataGridWareInputs.DataSource = bindingSourceWareInputs;
dataGridWareTransfer.DataSource = bindingSourceWareTransfer;
hab es jetzt folgender maßen gemacht kommt aber eine fehlermeldung
These columns don't currently have unique values.
jetzt weiß ich was du gemeint hast leider kommt bei meinen Code noch folgender fehler
DataMember property 'Ware Transfer' cannot be found on the DataSource.
cWareInputs objWareInputs = cWareInputs.WareInputs;
m_WareInputsDataSet = objWareInputs.WareInputsDataSet;
// DataRelation schaffen
DataRelation WareInputRelation = new DataRelation("WareInputRelation",
m_WareInputsDataSet.Tables["Posted Ware Input"].Columns["Bestellnr."],
m_WareInputsDataSet.Tables["Ware Transfer"].Columns["Bestellnr."]);
m_WareInputsDataSet.Relations.Add(WareInputRelation);
bindingSourceWareInputs.DataSource = m_WareInputsDataSet;
bindingSourceWareInputs.DataMember = "Posted Ware Input";
bindingSourceWareTransfer.DataSource = bindingSourceWareInputs;
bindingSourceWareTransfer.DataMember = "Ware Transfer";
dataGridWareInputs.DataSource = bindingSourceWareInputs;
dataGridWareTransfer.DataSource = bindingSourceWareTransfer;
Als DataMember den Namen der DataRelation, sprich "WareInputRelation" angeben. Liest du überhaupt was ich schreibe?