C# 从不同的数据源向datagradview添加列
我目前正在为我的申请编写一份“高级”搜索表。我正在使用C# 从不同的数据源向datagradview添加列,c#,winforms,datagridview,datasource,C#,Winforms,Datagridview,Datasource,我目前正在为我的申请编写一份“高级”搜索表。我正在使用datagridview来显示结果。想法是能够彻底搜索(有很多选择) 目前,我以如下方式填充datagridview: dgvData.AutoGenerateColumns = false; if (cbbKlant.SelectedItem != null) { dgvData.DataSource = StatistiekManagement.getOpdrachten(
datagridview
来显示结果。想法是能够彻底搜索(有很多选择)
目前,我以如下方式填充datagridview:
dgvData.AutoGenerateColumns = false;
if (cbbKlant.SelectedItem != null)
{
dgvData.DataSource = StatistiekManagement.getOpdrachten((klant)cbbKlant.SelectedItem);
//ID kolom
DataGridViewTextBoxColumn id = new DataGridViewTextBoxColumn();
id.Name = "ID";
id.DataPropertyName = "opdracht_id";
//Plaatsen kolom
DataGridViewTextBoxColumn plaatsen = new DataGridViewTextBoxColumn();
plaatsen.Name = "Plaatsen";
plaatsen.DataPropertyName = "aantal_personen";
//Vertrekplaats kolom
DataGridViewTextBoxColumn vertrek = new DataGridViewTextBoxColumn();
vertrek.Name = "Vertrek";
vertrek.DataPropertyName = "locatie_id";
this.dgvData.Columns.Add(id);
this.dgvData.Columns.Add(plaatsen);
this.dgvData.Columns.Add(vertrek);
}
这里的问题是我想从另一个表向datagridview
添加信息。例如:我有一份合同
,而这份合同有一个位置
。如何在此datagridview
中显示位置
我还使用linqtosql
从数据库中获取数据
谢谢,
Thomas不能将datagridview绑定到两个不同的源
您的解决方案是编写一条SQL语句连接两个不同的表,然后用它填充数据集。然后,您可以将其用作数据源。有几种方法可以附加该位置。最简单的方法是将位置作为属性添加到绑定基类中。它不必是数据库中的字段,而只是可以绑定到的属性。如果继承不是一个选项,有时封装可以工作 除上述内容外,您始终可以向(绑定的)datagridview添加非绑定列。它应该显示的值可以来自您喜欢的任何来源。显示该值的方法之一是使用datagridview的cellformatting事件:
//inside initialization void
dgvData.CellFormatting+=new DataGridViewCellFormattingEventHandler(dgvData_CellFormatting);
dvcol = new DataGridViewTextBoxColumn();
dgvData.Columns.Add(dvcol);
}
DataGridViewColumn dvcol;
void dgvData_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (dvcol != null && e.RowIndex != -1 && e.ColumnIndex == dvcol.Index)//where Column1 is your combobox column
{
var rec = (YourRecordTypeSuchAsContract)dgvData.Rows[e.RowIndex].DataBoundItem;
e.Value = ""; //get description based on the rec
}
}
如何从联接的LINQ语句返回数据?我编写了以下linq代码,但我不知道如何返回查询:
var query=(从dc.opdrachts中的o开始,其中o.klant==klant在dc.locatie_opdrachts中加入lo在o.opdracht_id等于lo.opdracht_id选择new{o,lo.locatie})代码>我不确定。至少可以说,我的LINQ生锈了。难道你不能对你的SQL连接调用一个SQL连接并使用这个数据集吗?谢谢,我该如何向我的绑定基类添加一个属性呢?我让LINQ创建所有类。扩展自动生成的LINQ类实际上非常容易,因为它们实现了部分声明。如果转到代码隐藏(在designer中的表上单击鼠标右键,然后单击“查看代码”),应该会看到一个可以添加属性的分部类。(只要这些属性没有columnattribute,它们就不会被视为数据库架构的一部分)。一些链接:这里有一个简短的示例:这里有一个较长的教程: