LINQ 查询的结果在dataGridView上的显示问题:

oioixiabings 2010-07-08 11:51:48
窗口中有一个listBox1,绑定至 表PrivateClass的PrivateClassName列 上,值成员为PrivateClassID,根据所选择的PrivateClassID,查询PrivateTelephoneBook表中的结果,采用了LinQ查询.可查询结果可在输出窗口输出,但不能在dataGridView中显示,不知为什么?
代码如下:
        private void listBox1_SelectedIndexChanged_1(object sender, EventArgs e)

{
if (this.listBox1.SelectedItem != null)
{
int selectPrivateClassId = (int)this.listBox1.SelectedValue;

var query1 =
from p1 in telephoneBooksDataSet1.PrivateTelephonBook.AsEnumerable()
where p1.PrivateClassID==selectPrivateClassId
select p1;

foreach (var item in query1)
{
System.Diagnostics.Debug.Print(item.Name.ToString());

}

this.dataGridView1.DataSource = query1;

}

}
...全文
313 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
CMIC 2010-07-09
  • 打赏
  • 举报
回复
Try his.dataGridView1.DataSource = query1.ToList();
oioixiabings 2010-07-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 oioixiabings 的回复:]
C# code
this.dataGridView1.DataSource = query1.CopyToDataTable();
[/Quote]
也存在一个问题:就是当查询结果为空时,无法对dataGridView进行更新,也就是dataGridView仍显示上次查询的结果,而不是显示没有数据行.
需改为如下:
this.dataGridView1.DataSource =""; 
this.dataGridView1.DataSource = query1.CopyToDataTable();

有没有其它办法?
可采用MSDN中查到的以下方法做,
[code=C#]int selectPrivateClassId = (int)this.listBox1.SelectedValue;
DataTable personTel = this.telephoneBooksDataSet1.Tables["PrivateTelephonBook"];
EnumerableRowCollection<DataRow > query1 =
from p1 in personTel.AsEnumerable()
where p1.Field<int>("PrivateClassId")==selectPrivateClassId
select p1;
this.dataGridView1.DataSource = query1.AsDataView();
this.dataGridView1.Refresh();
code]
但对以上的方法存在疑问,是否有大侠可指导一下,谢谢!
oioixiabings 2010-07-09
  • 打赏
  • 举报
回复
this.dataGridView1.DataSource = query1.CopyToDataTable();

较好实现了!
oioixiabings 2010-07-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cmic 的回复:]
Try his.dataGridView1.DataSource = query1.ToList();
[/Quote]
可绑定.但因数据中有一此项为NULL,在显示时出错,提出无法将DBnull转为string,为什么?

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧