菜题急送分!!!关于对数据表记录排序、筛选,然后在DataGrid中显示结果的问题。日落前给分!!!!(windows application)

frb_csharp 2002-06-06 11:15:45
我的目的是:有一个记录各项支出的数据表,在DATAGRID中显示。我想让用户在textBox1中输入“支出”(列名)中想筛选的项,如输入“牛奶”,一点BUTTON,则刷新DATAGRID,显示出所有“支出”为牛奶的记录!

private void txtInOut_LostFocus(object sender,System.EventArgs e)
{
int iRowsCount=ds1.PrimaryTable.Rows.Count;
string filterExp="收入支出 = '牛奶'";
//
//问题一:上面这个filterExp表达式是错误的,等号右边好象不能写成textBox1.Text,不过我想实现这个功能,应如何?????
//
string sortExp="日期 DESC,金额 DESC";

DataRow [] dr;
dr=ds1.PrimaryTable.Select(filterExp,sortExp);
ds1.PrimaryTable.Rows.Clear();
//数据集是引用类型吧?我上面这么一Clear(),可能dr[]里面也什么都没有了,所以下面只添加了若干个空行。(事实是,若干个行,所有列中的值都为null,显示在DataGrid中)

for (int ctr=0; ctr<dr.Length; ctr++)
{
DataRow dr_temp=ds1.PrimaryTable.NewRow();
dr_temp=dr[ctr];
ds1.PrimaryTable.Rows.Add(dr_temp);
}

DtGrd.DataSource=ds1.PrimaryTable;
DtGrd.Refresh();
}

我应怎么办,急死我了,请朋友帮一把,一定给分!再拜!


...全文
110 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
allanyan 2002-06-06
  • 打赏
  • 举报
回复
你可以用OleDbConnection来连接数据库,通过DataAdapter将数据库中的内容放到DataSet中,在DataSet上建立一个DataView(这家伙就像数据库中的视图),将DataGrid的DataSource定为这个DataView就可以了!由于DataSet在内存中,他并不与数据库长时间的连接(需要时他自己就连接了),因此速度快,但是比较占内存!
cellblue 2002-06-06
  • 打赏
  • 举报
回复
很对不起,我很讨厌使用这个控件,建议使用ListView

我想这个问题你大概可以这样解决,就是查询的时候重新从数据库中查找数据,然后重新填写到数据库中,这样肯定没有问题
allanyan 2002-06-06
  • 打赏
  • 举报
回复
不知这位兄台用没用DataView,我用DataView可以实现你要的功能。
你可以利用DataView.Sort属性来设置排序,当然还有RowFilter过滤,然后调用DataGrid.Refresh()方法刷新DataGrid的内容就可以了!
另外,那个表达式应该是:
dataView1.RowFilter = "LastName = '" + textBox1.Text.Trim() + "'";
这样可以!你试试看吧!
allanyan 2002-06-06
  • 打赏
  • 举报
回复
不知这位兄台用没用DataView,我用DataView可以实现你要的功能。
你可以利用DataView.Sort属性来设置排序,当然还有RowFilter过滤,然后调用DataGrid.Refresh()方法刷新DataGrid的内容就可以了!
另外,那个表达式应该是:
dataView1.RowFilter = "LastName = '" + textBox1.Text.Trim() + "'";
这样可以!你试试看吧!
frb_csharp 2002-06-06
  • 打赏
  • 举报
回复
有朋友愿意帮一下吗?
CForce 2002-06-06
  • 打赏
  • 举报
回复
好急就上wc
这东西不是用sql解决的吗?
frb_csharp 2002-06-06
  • 打赏
  • 举报
回复
微软专家
acptvb(微软全球技术中心 VB技术支持)

r u here?

神啊,救救我吧!
frb_csharp 2002-06-06
  • 打赏
  • 举报
回复
天快黑了,我好急!!!!!
frb_csharp 2002-06-06
  • 打赏
  • 举报
回复
谢以上诸位兄弟!

DataView是可以解决,不过我是在边做边学,总不能一直绕着不会的吧,^o^。我看MSDN说这两种方法都可以,数据视图的是简单一些;可是直接在数据表中按我上面做的为什么不行,我怎么想也不明白!

至于重新从数据库中查询,会不会太耗资源,特别是数据库大的时候。

111,125

社区成员

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

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

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