C#windows应用程序,bindingSource做数据源时,数据集更新问题

shamohai5566 2010-01-26 03:39:57
大家好,我是新手,有个问题请教大家。我这里有一个datagridview控件绑定了一个bindingsource数据源,这个bindingsource返回的是Record表里面的所有记录,页面上有一个combobox控件,combobox关联的是Record表里面的operater字段。现在我想根据用户在combobox中选择的内容区更新数据集,比如说:combobox选择的值为“张三”于是让datagridview里面显示Record表里面operater值为张三的记录。我的代码如下:
1------private void Form_record_Load(object sender, EventArgs e)
{
// TODO: 这行代码将数据加载到表“jinshiDataSet.Record”中。您可以根据需要移动或移除它。

this.recordTableAdapter.Fill(this.jinshiDataSet.Record);


}
2------ 点击按combobox所选内容查询时:
string strDetecter = this.toolStripComboBox_detecter.Text;
SqlConnection con = dc.SqlConBind();
con.Open();

SqlDataAdapter sda = new SqlDataAdapter("select * from Record ", con);//where operater=strDetecter", con);
DataTable recordTable = new DataTable();
sda.Fill(recordTable);
this.recordBindingSource.DataSource = recordTable;

this.recordBindingSource.Filter = "operater='strDetecter'";
this.recordBindingSource .Sort = "time DESC, recordId ASC";
con.Close();

dataGridView1.DataSource = this.recordBindingSource;



运行不提示错误但是datagridview里面没有任何数据显示,不知道是什么原因造成的,大家帮忙解决一下问题,小弟万分感激!
...全文
626 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
godyde 2010-08-06
  • 打赏
  • 举报
回复
this.recordBindingSource.Filter = "operater='strDetecter'";
改为

this.recordBindingSource.Filter = "operater='" & strDetecter & "'";
就OK
Kobayashi 2010-01-27
  • 打赏
  • 举报
回复
不要这样做啊
你直接获取DataGridView的DataTable
然后根据DataTable.Select("列名=值","");
就可以了啊
这样你是直接获取的
danjiewu 2010-01-27
  • 打赏
  • 举报
回复
"operater='strDetecter'"
应该是
"operater='" + strDetecter + "'";
shamohai5566 2010-01-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cwaspnet 的回复:]
你这个实现不需要写一句代码就可以 
弄两个数据源  一个combox 一个view  启用combox刷新
view的控件数据源根据combox控件传值来做查询就可以了
[/Quote]
或者是说,您说的那种方法,说详细一点,谢谢
shamohai5566 2010-01-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cwaspnet 的回复:]
你这个实现不需要写一句代码就可以 
弄两个数据源  一个combox 一个view  启用combox刷新
view的控件数据源根据combox控件传值来做查询就可以了
[/Quote]
我不太明白,那个view 在visual studio 2005里面没有呀。
现在我把上面程序中的this.recordBindingSource.Filter = "operater='strDetecter'";
换成this.recordBindingSource.Filter = "operater='张三'"; 就可以查出相应的记录了,可知这句话有问题,是不是用参数不是这么用呀?大哥能给我讲一下吗?谢谢
shamohai5566 2010-01-27
  • 打赏
  • 举报
回复
嗯,谢谢各位了,我的问题解决了,我用的是5楼的方法。谢谢
wuyq11 2010-01-27
  • 打赏
  • 举报
回复
this.recordBindingSource.Filter = "operater='"+strDetecter+"'";
或直接在
string sql="select * from Record where 1=1"'
if(string.IsNullOrEmpty(strDetecter))
sql+="";
cwaspnet 2010-01-26
  • 打赏
  • 举报
回复
你这个实现不需要写一句代码就可以
弄两个数据源 一个combox 一个view 启用combox刷新
view的控件数据源根据combox控件传值来做查询就可以了
flyfly2008 2010-01-26
  • 打赏
  • 举报
回复
要重新刷新

111,097

社区成员

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

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

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