Autor Beitrag
Mr.y
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: Do 24.06.10 07:52 
Hallo,
hoffe, dass das der richtiger Bereich dafür ist.
Und wenn ich Daten aus irgendeinem Medium im DataGridView ausgeben lasse, mach ich das so:

ausblenden C#-Quelltext
1:
DataGrid.Datasource =  Dataset.Tables[0]					


So wird mir das Ganze ausgegeben, aber ich möchte auch mal eine bestimmte Zeile, Datensatz oder Spalte im DataGrid ausgeben.
Bisher kann ich das nur in einer Textbox.
Weiss mir da jemand zu helfen?
Danke im Voraus.

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Do 24.06.10 08:05 
Hallo,

wie wählst du den die Kriterien aus anhand von denen du den Datensatz auswählst? Eventuell könntest du diese einfach als Filter für deine DatenSource (über Binding) setzen und so den gewünschten Effekt erzielen.

Gruß

Für diesen Beitrag haben gedankt: Mr.y
Mr.y Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: Do 24.06.10 09:26 
user profile icondanielf hat folgendes geschrieben Zum zitierten Posting springen:
Hallo,

wie wählst du den die Kriterien aus anhand von denen du den Datensatz auswählst? Eventuell könntest du diese einfach als Filter für deine DatenSource (über Binding) setzen und so den gewünschten Effekt erzielen.

Gruß


Danke für deine schnelle Antwort.

Kriterien habe ich erstmal nicht,
ich wollte einfach wissen, welche Möglichkeiten bestehen um eben eine bestimmte Zelle, ganze Spalte oder einen Datensatz auswählen zu können.

ich mache das erstmal so:

ausblenden C#-Quelltext
1:
2:
3:
Spalte = mDaten.Tables["USER"].Columns["Titel"];
Zeile = mDaten.Tables["USER"].Rows[0];
dataGridView.DataSource = Zeile[Spalte];


Er zeigt mir aber ganzen Datensatz an, statt nur eine Zelle von der Spalte "Titel"

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Do 24.06.10 13:12 
Du musst dich entscheiden, was du willst.

DataTable anzeigen:
ausblenden C#-Quelltext
1:
dataGridView.DataSource = mDaten.Tables["USER"];					

Um eine bestimmte Zeile anzuzeigen, ist es am besten, eine DataView auf die DataTable zu legen mit einem bestimmten Filter und diese DataView als DataSource zuzuweisen.
ausblenden C#-Quelltext
1:
2:
3:
4:
DataView dv = new DataView();
dv.Table = mDaten.Tables["USER"];
dv.RowFilter = "ID = 37";
dataGridView.DataSource = dv;

Um eine bestimmte Spalte anzuzeigen, gibt es (mindestens) zwei Möglichkeiten: (a) Es wird die DataTable mit AutoGenerateColumns=true an das DGV zugewiesen; danach werden für alle nicht gewünschten DGV-Spalten Visible auf false gesetzt. (b) Es wird die DataTable mit AutoGenerateColumns=false an das DGV zugewiesen; die gewünschte Spalte wird manuell erzeugt und dem DGV zugewiesen.

Um eine bestimmte Zelle anzuzeigen, ist das DGV nicht geeignet. (Genauer: Es ist eher Quatsch, wenn ein Control mit n*m Zellen auf eine Größe von 1*1 beschränkt wird.) Wenn du das unbedingt willst, kannst du die o.g. Verfahren kombinieren. Besser ist es, eine TextBox oder ComboBox oder MaskedTextBox zu verwenden oder was auch immer geeignet ist.

Übrigens hilft ein Blick in die SDK-Doku/MSDN/Hilfe, was als DataSource geeignet ist:
DataGridView.DataSource ist zwar als object deklariert, aber aus den Beschreibungen geht hervor, dass der Typ zu einem der folgenden Interfaces passen muss:
* The IList interface, including one-dimensional arrays.
* The IListSource interface, such as the DataTable and DataSet classes.
* The IBindingList interface, such as the BindingList<(Of <(T>)>) class.
* The IBindingListView interface, such as the BindingSource class.

Gruß Jürgen

Für diesen Beitrag haben gedankt: Mr.y
Mr.y Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: Do 24.06.10 13:20 
danke sehr für deinen ausführlichen Beitrag :)
hab mir schon gedacht, dass man bei den Spalten an der "visible" eingenschaft was machen könnte.
Aber das mit dem "DataView" ist echt gut, danke nochmals :)

Da entsteht bei mir noch ne Frage zur "DataView"

Da entsteht bei mir ein seltsamer Fehler
und zwar, wenn ich mir alles ausgeben lasse findet er das Formular "Menü"

aber wenn ich bei folgender XML ihm sage:

ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
<User ID="2">
  <localeIP>172.xxx.xx.xx</localeIP
  <Benutzer>Kai</Benutzer
  <Adresse>Buchstehude</Adresse
  <Sammlung>DVD</Sammlung
</User>
<Fenstergröße Formular="Menü">
  <Höhe>3945</Höhe
  <Breite>8520</Breite
  </Fenstergröße>




ausblenden C#-Quelltext
1:
2:
dvAnsicht.Table = mDaten.Tables["Fenstergröße"];
dvAnsicht.RowFilter = "Formular = Menü";


sagt er mir: Die Spalte "Menü" wurde nicht gefunden (Die gibts ja auch nicht, es gibt die Spalte: Formular)
ABER

ausblenden C#-Quelltext
1:
2:
dvAnsicht.Table = mDaten.Tables["User"];
dvAnsicht.RowFilter = "ID = 2";

geht es wunderbar, was mache ich da verkehrt??? :(

Moderiert von user profile iconChristian S.: XML-Tags hinzugefügt
Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4796
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Do 24.06.10 20:05 
Strings müssen in Anführungsstriche geschrieben werden (wie bei SQL):
ausblenden C#-Quelltext
1:
dvAnsicht.RowFilter = "Formular = 'Menü'";					

Für diesen Beitrag haben gedankt: Mr.y
Mr.y Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: Fr 25.06.10 08:57 
user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Strings müssen in Anführungsstriche geschrieben werden (wie bei SQL):
ausblenden C#-Quelltext
1:
dvAnsicht.RowFilter = "Formular = 'Menü'";					


ahh die Hochkommas...hab mir schon gedacht, dass man den String irgendwie in die Gänsefüßchen setzen sollte, hab die Hochkommas vergessen, danke sehr
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Fr 25.06.10 09:13 
Der Vollständigkeit halber: Alle diese Schreibweisen (RowFilter, z.T. Sort) gehen nach den Regeln, die unter DataColumn.Expression beschrieben sind. Jürgen