Laden...

Daten im Dataset filtern

Erstellt von King-Malkav vor 18 Jahren Letzter Beitrag vor 17 Jahren 2.232 Views
King-Malkav Themenstarter:in
264 Beiträge seit 2006
vor 18 Jahren
Daten im Dataset filtern

Hi Leute ich bin neu und noch recht unerfahren und ich habe ein Problem - wer hätte das Gedacht 🙂

Ich habe eine MSSQL Datenbank (MSDE) und möchte von der Datenbank nur bestimmte Daten in ein Dataset holen.

Konkret habe ich eine Mitarbeiter Tabelle in der Ein Index (Primärschlüssel) und der Vor- und der Nachname drin stehen. Ich möchte nun eine Suchmöglichkeit Programmieren die nach dem Nachnamen sucht (den man in ein Textfeld eingibt.
Das ganze soll dann in einem Datgrid angezeigt werden (Databinding mit VS2003 auf dem Datagrid eingestellt)

Ich hoffe jemand kann mir helfen.

MFG

D
81 Beiträge seit 2005
vor 18 Jahren

Na du machst entsprechend deiner Parameter eine neue Anfrage an die DB.
Direkt im DS filtern geht nicht.

King-Malkav Themenstarter:in
264 Beiträge seit 2006
vor 18 Jahren

Original von dArignac
Na du machst entsprechend deiner Parameter eine neue Anfrage an die DB.
Direkt im DS filtern geht nicht.

Und wie mach ich das? Sorry kenn mich noch nicht wirklich mit VS2003 und C# aus.

2.223 Beiträge seit 2005
vor 18 Jahren

mojn



// beispiel daten holen
DataSet ds = GetDataSetFromDB(connectionstring, "SELECT * FROM Mitarbeiter;")
BindDsToGrid(ds);




public void buttonclick(object sender, Eventargs e){
     string query = string.format("SELECT * FROM Mitarbeiter WEHRE nachname = {0};", textbox1.text);

DataSet ds = GetDataSetFromDB(connectionstring, query)
BindDsToGrid(ds);
}




zum probieren sollte das schon reichen

D
81 Beiträge seit 2005
vor 18 Jahren

Das MSDN hilft dir da in vielen Belangen weiter, einfach mal nach entsprechender Klasse suchen. Gibt da auch viele Codebeispiele und Querverweise zu Tutorials oder Artikeln.

King-Malkav Themenstarter:in
264 Beiträge seit 2006
vor 18 Jahren

@ blackcoin
Leider klappt so gar nix...

Ich habs jetzt mal so versucht (so stand es in einem Buch)...


private void button1_Click(object sender, System.EventArgs e)
		{
			SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM mitarbeiter " +
				"WHERE Nachname = @Nachmame", sqlConnection1);
			da.SelectCommand.Parameters.Add("@Nachname", SqlDbType.Char).Value = nachname.Text;
			DataSet ds = new DataSet();
			try
			{
				
				sqlConnection1.Open();
				da.Fill(ds, "mitarbeiter");
				

				sqlConnection1.Close();
			}
			catch (Exception ex)
			{
				MessageBox.Show("Fehler " + ex.Message, "Fehler", MessageBoxButtons.OK,MessageBoxIcon.Error);
			}

			dataGrid1.SetDataBinding(ds, "mitarbeiter");
				
		}

Allerdings bekomm ich so ne Fehlermeldung das die Variable '@Nachname' deklariert werden muss.

Wie mach ich das? Leider steht das nämlich nicht im Buch oder ich bin zu blind.

MFG

King-Malkav Themenstarter:in
264 Beiträge seit 2006
vor 18 Jahren

Sorry leute, hat sich erledigt. Ich hab mich nur beim Parameternamen vertippt. Jetzt geht es. MFG

2.223 Beiträge seit 2005
vor 18 Jahren

hi

natürlich hättest du die methoden ausimplentieren müssen

mfg

King-Malkav Themenstarter:in
264 Beiträge seit 2006
vor 18 Jahren

Original von blackcoin
hi

natürlich hättest du die methoden ausimplentieren müssen

mfg

Hab ich Versucht, aber entweder bin ich zu unerfahren...oder ich hab mich mal wieder vertippt. Passiert mir voll oft...

EDIT:

Eine Frage hätte ich noch, wie bau ich ne Wildcard in die Abfrage ein. Im moment muss man den korrekten und vollen Nachname Tippen, damit es zu einem Sucherfolg kommt. Das ist nicht gerade komfortabel.

MFG

2.223 Beiträge seit 2005
vor 18 Jahren

kannste nicht einfach 'like' verwenden?

mfg

King-Malkav Themenstarter:in
264 Beiträge seit 2006
vor 18 Jahren

Original von blackcoin
kannste nicht einfach 'like' verwenden?

mfg

Nee funzt leider nicht, habe ich auch schon versucht. MFG

2 Beiträge seit 2006
vor 17 Jahren

Hallo,

meine Antwort kommt ein bisschen spät, aber für alle die es noch wissen wollen wie man ein DataSet filtern kann gibts hier den passenden Eintrag 😉

datagrid filter