我正在解决的问题是将数据从MySql绑定到C#中的textBoxes。 使用dataGridView看起来像这样:
DataAdapter = new SqlDataAdapter(commandString , connection);
DataAdapter.Fill(dataSet1,"show");
DataAdapterDetail.Fill(dataSet1, "detail");
DataRelation Relation = new DataRelation("FK_Zadanie_Pracownik",
dataSet1.Tables["show"].Columns["ID"],
dataSet1.Tables["detail"].Columns["ID"]);
dataSet1.Relations.Add(Relation);
bindingSource1.DataSource = dataSet1;
bindingSource1.DataMember = "show";
bindingSource2.DataSource = bindingSource1;
bindingSource2.DataMember = "FK_Zadanie_Pracownik";
dataGridView1.DataSource = bindingSource1;
我的问题是如何做同样的但是使用第一个bindingSource的combobox和第二个使用的文本框。
编辑:
我尝试使用DataRelations做这样的事情:
DataRelation ZameldowaniaMieszkancy = new DataRelation("ZamMiesz", dsZameldowania.Tables["Zameldowania"].Columns["id_mieszkanca"], dsZameldowania.Tables["Mieszkancy"].Columns["id"], false);
bsOsoba = new BindingSource();
bsOsoba.DataSource = dsZameldowania;
bsOsoba.DataMember = "Zameldowania";
design.comboBoxFiltrNazwisko.DataSource = bsOsoba;
design.comboBoxFiltrNazwisko.ValueMember = "ZamMiesz.nazwiskoImie";
design.comboBoxFiltrNazwisko.DisplayMember = "ZamMiesz.nazwiskoImie";
但是它只显示了DB的第一个结果(只有一个行到行的关系)而不是全部。
答案 0 :(得分:1)
您可以简单地将数据集与此类
的ComboBox绑定mycombo.DataSource = dataSet1.Tables["show"];
之后,您必须设置ComboBox的DisplayMember和ValueMember
mycombo.DisplayMember = "ColumnNameToDisplay";
mycombo.ValueMember = "ColumnNameForID";
对于TextBox值,您必须定义数据表的指定列和行 像这样:
TextBox1.Text = dataSet1.Tables["show"].Rows[RowIndex]["Column Name"].ToString();
如果下拉列表和文本框在Grid中,则必须在Grid的RowDataBoundEvent中执行相同的操作。
答案 1 :(得分:0)
也许你想看看here
上的这个小教程