使用textBoxes和ADO的主 - 详细视图

时间:2011-06-05 23:24:18

标签: c# binding ado.net

我正在解决的问题是将数据从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的第一个结果(只有一个行到行的关系)而不是全部。

2 个答案:

答案 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

上的这个小教程
相关问题