Ich habe eine Combobox, die Daten aus einer Auswahl und einer Datagridview abrufen, die Daten von einer anderen Abfrage abrufen. Ich möchte die Datagridview mit dem Comboboxvalue filtern. Ich versuche alles, aber nichts funktioniert. Kannst du bitte helfen? Außerdem, warum, wenn ich dataview = ((DataTable) datagridview.datasource.defaultview (erste Zeile in combobox_SelectedIndexChanged) deklariere ich kann keine Werte in der Combobox mehr sehen, stattdessen sehe ich System DataRowView, aber die erste Frage ist wichtiger für mich .C# Combobox und DataGridView
private void Form5_Load(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(@"Data Source=xxxxx;Initial Catalog=xxxxx;Integrated Security=True;");
conn.Open();
SqlCommand sc = new SqlCommand(" SELECT id, customername+' - '+cast(inserted as varchar(19)) as targ FROM bf where customername>'a' order by customername asc, inserted desc ", conn);
SqlDataReader reader;
reader = sc.ExecuteReader();
DataTable dt = new DataTable();
dt.Columns.Add("id", typeof(string));
dt.Columns.Add("targ", typeof(string));
dt.Load(reader);
comboBox1.ValueMember = "id";
comboBox1.DisplayMember = "targ";
comboBox1.DataSource = dt;
conn.Close();
var select = "SELECT [id],[CustomerName[email],[Capital] FROM baf order by id desc";
var c = new SqlConnection("Data Source=xxxxxx;Initial Catalog=xxxxx;Integrated Security=True;"); // Your Connection String here
var dataAdapter = new SqlDataAdapter(select, c);
var commandBuilder = new SqlCommandBuilder(dataAdapter);
var ds = new DataSet();
dataAdapter.Fill(ds);
dataGridView1.ReadOnly = true;
dataGridView1.DataSource = ds.Tables[0];
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
//var dataView = ((DataTable)dataGridView1.DataSource).DefaultView;
// if (comboBox1.Text == "Remove filter")
// {
// dataView.RowFilter = string.Empty;
// }
// else
// {
// //dataView.RowFilter = "id = {comboBox1.Text}";
// }
//}
}
auf diese Weise versuchen, private void ComboBox1_SelectedIndexChanged (object sender, EventArgs e) { Dataview dv = dataGridView1.DataSource als Dataview; dv.RowFilter = "ID = [ComboBox1.Text]"; geben Sie mir den Fehler Objektreferenz nicht auf eine Instanz eines Objekts festgelegt. Und zeigt Systemdaten DataRowView in der Combobox – Diegoctn
Wenn Sie versuchen, String-Interpolation auf dem RowFilter zu verwenden, müssen Sie ein Dollarzeichen vorangestellt wird: '$„id = {comboBox1.Text}“' Allerdings sollten Sie wahrscheinlich 'SelectedValue' verwenden , nicht 'Text'. – Crowcoder
private void comboBox1_SelectedIndexChanged var dataView = ((DataTable) dataGridView1.DataSource) .DefaultView; if (comboBox1.Text == "Filter entfernen") { dataView.RowFilter = string.Empty; } sonst { dataView.RowFilter = $ "id = {comboBox1.SelectedValue}"; } Fehler unerwartetes Zeichen, plus nur Zuweisung Anruf, Inkrement, Dekrement und neues Objekt kann als Anweisung verwendet werden, ungültiger Ausdruck Begriff ' – Diegoctn