问一个datagrid过滤数据行的问题,谢谢!

zczc0128 2005-03-28 11:07:45
代码如下:
string OleDBConnString = @"Data Source = \Syslog.mdb;"

+"Provider=Microsoft.Jet.OLEDB.4.0;";
string SQLQuery = "SELECT * FROM SysLog ;


OleDbConnection cn = new OleDbConnection(OleDBConnString);
try
{
cn.Open();
OleDbCommand cmd = new OleDbCommand(SQLQuery,cn);

OleDbDataAdapter cnAdapter = new OleDbDataAdapter(cmd);
DataSet dataset = new DataSet();
cnAdapter.Fill(dataset,"syslog");
cnAdapter.Dispose();
cn.Close();
DataViewManager dvm = new DataViewManager(dataset);
dvm.DataViewSettings["syslog"].RowFilter = "Priority ='6'"; //Priority 是syslog表中的一个列名
dvm.DataViewSettings["syslog"].RowFilter = "Facility ='128'"; //Facility 是syslog表中的一个列名
dataGrid1.SetDataBinding(dataset,"syslog");
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}

为什么不能实现只显示priority=6和Facility=128的数据呢?
还是会显示所有数据
...全文
96 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zczc0128 2005-03-30
好的,我试试,谢谢
回复
zczc0128 2005-03-29
dataviewsetting不是会为每个datatable创建一个dataview的么
回复
ArLi2003 2005-03-29
试试:

dataGrid1.SetDataBinding(dataset.Tables[0].Select("Priority ='6' and Priority ='128'"), dataset.Tables[0].TableName);
回复
zczc0128 2005-03-29
怎么我改成用dataview还是不行啊
回复
skydaxia 2005-03-29
用dataview
回复
xzq686 2005-03-29
dvm.DataViewSettings["syslog"].RowFilter = "Priority ='6'"; //Priority 是syslog表中的一个列名
dvm.DataViewSettings["syslog"].RowFilter = "Facility ='128'"; //Facility 是syslog表中的一个列名

你上面的第二句把第一句给的值覆盖了。
dvm.DataViewSettings["syslog"].RowFilter = "Priority ='6' or Facility ='128'";
RowFilter中的是SQL查询语言的格式。。不能用"||"
回复
harboursong 2005-03-28
DataViewManager 是不需要的,定义一个
DataView myView;
dataGrid1.SetDataBinding(myView);
myView.RowFilter = "Priority ='6' || Facility ='128'";
回复
dahuzizyd 2005-03-28
把dataGrid1绑定到DataView上
回复
相关推荐
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2005-03-28 11:07
社区公告

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