Autor Beitrag
peter876
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Fr 05.10.12 13:24 
Ich würde gerne eine Suchfunktion mit in den Datagrid einbauen bin bis jetz hier, leider wird die Spalte Name nicht gefunden kann mir jmd. helfen :)?
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
using...

namespace WpfApplication10
{
    /// <summary>
    /// Interaktionslogik für MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public class Globals
        {
            public static string Connection = "Server=localhost;Database=data;Uid=root;Pwd=;";
        }
        public MainWindow()
        {
            InitializeComponent();
            FillDataGrid();
        }

        private MySqlDataAdapter sqlDataAdapter;
        private DataTable dataTable;
        private void FillDataGrid()
        {
            string ConString = "Server=localhost;Database=data;Uid=root;Pwd=;";
            string CmdString = string.Empty;
            using (MySqlConnection con = new MySqlConnection(ConString))
            {
                CmdString = "SELECT NName,Name,Street,EMail,MobileNo FROM Phonebook";
                MySqlCommand cmd = new MySqlCommand(CmdString, con);
                sqlDataAdapter = new MySqlDataAdapter(cmd); // <--
                dataTable = new DataTable("Phonebook"); // <--
                sqlDataAdapter.Fill(dataTable);
                datagridview1.ItemsSource = dataTable.DefaultView;
            }
        }

        private void UpdateDataGrid()
        {
            sqlDataAdapter.Update(dataTable);
        }

        private void Button_Click(Object sender, EventArgs e)
        {
            DataTable db = new DataTable("Phonebook");
            DataView view = new DataView(db);
            view.RowFilter = "Name LIKE '%" + this.TextBox6.Text + "%'";
            datagridview1.ItemsSource = view;
        }


       
    }
}
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 05.10.12 13:41 
Selbe Problem wie in dem anderen Case. Du erzeugst in der Click Methode eine neue Datatable und suchst in der. Du musst schon die DataTable benutzen die auch am Grid hängt und Daten enthält nicht irgendeine andere. Lösung ist ebenso wie im anderen Case mach aus der DataTable eine Klassenvariable und benutz die dann auch.

Es wäre vielleicht angebracht das du dir nochmal den Unterscheidung von Klasse und Instanz einer Klasse klarmachst bevor du was anderes versuchst.
peter876 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Fr 05.10.12 13:46 
Danke jetz hab ich es auch gerafft das ich eine neue tabelle erzeuge und in der suche jetz funkt. es :)

kann ich auch suchen ohne eine tabelle anzuwählen ?
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 05.10.12 13:52 
Zitat:
kann ich auch suchen ohne eine tabelle anzuwählen ?


Häh? Denn Gedankengang solltest du mal erläutern. Das macht gerade fast genauso wenig Sinn wie die Frage 'Kann ich auch Suchen ohne zu sagen wonach ich Suche?'. Da kann man nur Antworten ja macht nur keinen Sinn.
peter876 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Fr 05.10.12 15:29 
Sorry Tabelle war vl die falsche wortwahl richtig wäre vl oder besser wäre vl "Spalte" ich suche ja in der Spalte Name es soll aber auch die Spalte NNname berücksichtigt werden ?
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 05.10.12 15:45 
Du meinst eine Suche über mehrere Spalten?
Mit OR kannst du die Spalten verknüpfen:
ausblenden C#-Quelltext
1:
"Name LIKE '%" + this.TextBox6.Text + "%'" + " OR " + "NName LIKE '%" + this.TextBox6.Text + "%'"// + " OR " + ...					

Fortgeschrittenere Programmierung wäre das Erzeugen einer Methode, welche über alle Spalten der DataTable iteriert und daraus dann den RowFilter erzeugt.

P.S. Unter DataColumn.Expression findest du weitere Infos über den Aufbau des RowFilter.


Zuletzt bearbeitet von Th69 am Fr 05.10.12 15:48, insgesamt 1-mal bearbeitet
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 05.10.12 15:46 
Dann deinen RowFilter 2mal schreiben (bzw. je Spalte) und OR verknüpfen.
peter876 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Fr 05.10.12 18:26 
alles klar ich danke für die mühe :)