如何让datagridview刷新?

natici 2009-05-04 09:14:38
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Trim().Length==0 || textBox2.Text.Trim().Length==0)
MessageBox.Show("请输入正确的名和价格", "提示");
else
{
string Afile = "provider=Microsoft.Jet.OleDb.4.0;Data Source=canyin.mdb";
OleDbConnection AconnStr = new OleDbConnection(Afile);
OleDbCommand Icmd = new OleDbCommand("insert into info (名,价) values('"+textBox1.Text+"','"+textBox2.Text+"')", AconnStr);
AconnStr.Open();
int ExeNum = Icmd.ExecuteNonQuery();
this.dataGridView1.Refresh();
AconnStr.Close();

}
}
如何让datagridview1在点击button1之后马上刷新?由于我是在点击button1时直接修改数据库,那么如何让datagridview1重新读取数据库并即时刷新呢?
怎么我用this.dataGridView1.Refresh(); 没效果?
...全文
15736 48 打赏 收藏 转发到动态 举报
写回复
用AI写文章
48 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yolanda98689 2011-05-31
  • 打赏
  • 举报
回复
帮顶。。。。
xuskyline 2011-05-31
  • 打赏
  • 举报
回复
我也遇到了类似的为题 我很希望我从个为的讨论中得出结论,谢谢
scuwxin 2011-03-24
  • 打赏
  • 举报
回复
我的办法是先删除数据库记录,然后再用一条条删除datagridview里的数据
for (int j = k; j >= 1; j--)
{
dataGridView61.Rows.RemoveAt(dataGridView61.SelectedRows[j - 1].Index);
}
从后往前删除,避免沙漏效应。
另外我觉得最简单的办法还是楼上各位所说的直接再从数据库里取一遍最新数据就行了。反正查询函数你肯定是要写一个的,直接调用一下就行了。
snoopy0011 2010-12-28
  • 打赏
  • 举报
回复
怎么.net有gridview的databind(),winform的datagridview就没人呢,真郁闷。。。
z517702329 2010-12-13
  • 打赏
  • 举报
回复
CS里的dataGridView没有dataBing方法了。。
lizhibin123 2010-08-04
  • 打赏
  • 举报
回复
强烈顶36楼的,是正确的,自己写个方法,然后每次在数据库操作后调用这个方法就可以及时改进到datagridview里面了。参考36楼的代码,注意大小写就是~!
yczgz1978 2010-05-25
  • 打赏
  • 举报
回复
上面的DDB会员是dataGridView
yczgz1978 2010-05-25
  • 打赏
  • 举报
回复

Public hyConn As OleDb.OleDbConnection
Public hyCmd As OleDb.OleDbCommand
Public hyRd As OleDb.OleDbDataReader
Public hyTable As DataTable
Public hySql As String
Private Sub main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
hyConn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0 ; Data Source=d:\lx\会员管理\db1.mdb ")
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=
hyConn.Open()
hySql = "select * from 基本信息"
hyCmd = New OleDb.OleDbCommand(hySql, hyConn)
hyRd = hyCmd.ExecuteReader()
'DataSet1.Tables.Add(hyTable)
'ddb会员.DataSource = DataSet1.Tables.Item(0)
hyTable = New DataTable
hyTable.Load(hyRd)
ddb会员.DataSource = hyTable



End Sub

Private Sub 添加_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 添加.Click
Dim addSQL As String
'添加新记录**************************************************
addSQL = "INSERT INTO 基本信息(姓名,电话,备注) VALUES('" _
& xm.Text & "' , '" _
& dh.Text & "' ,'" _
& bz.Text & "' )"
hyCmd.CommandText = addSQL
hyCmd.Connection = hyConn
hyRd = hyCmd.ExecuteReader()
hyRd.Close()
hyCmd.CommandText = hySql
hyRd = hyCmd.ExecuteReader()
hyTable.Clear()
hyTable.Load(hyRd)
End Sub
yyrnsheng 2010-05-21
  • 打赏
  • 举报
回复
可以多写一个datafull()方法 刷新前后都调用这个方法在dataGridView1中加载数据。
上面的只是数据库更新了,但是dataGridView1绑定数据没有刷新无法显示新的数据。
笑虾 2009-11-01
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 natici 的回复:]
引用 18 楼 asdf4525qd 的回复:
引用 10 楼 natici 的回复:
没看懂9楼的话。
我才学c# 1个月,之前没任何编程经验,现在要做毕业设计了,唯有努力学习。。望赐教!能否直接给出重新绑定数据库的代码呢?难道要new dataset,然后fill再dataGridView1.DataSource=dataset.tables?

为什么毕设之前会没有任何编程经验???????????????????????????????????
很不理解

很简单的道理,学完c语言,一直就到现在学c#,1个月后毕业设计,以前没写过程序,就这么简单。
[/Quote]

十八楼的真牛B,能问出这种问题。 大把人毕业设计后一样没有任何编程经验
fdc123 2009-05-06
  • 打赏
  • 举报
回复
把绑定数据库的表写在一个方法里面呀
比如
datatable dt;
public void bind()
{
sqlconnection sqlcon=new sqlconnection("");
sqlcon.open();
SqlDataAdapter da=new sqldataadapter("select * from biao",sqlcon);
dt=new datatable;
da.fill(dt);
datagridview.datasouce=dt;
sqlcon.close();
}

这不就是绑定数据库表的方法吗, 手打的 你自己该下 更改完表之后在调用bind()方法不就行了。
natici 2009-05-06
  • 打赏
  • 举报
回复
感谢各位的答复!!小弟感激流涕!看过各位的答复,觉得最好的方法还是把数据库fill进adpter再赋给datagridview1。
qgylovelj 2009-05-06
  • 打赏
  • 举报
回复
动态绑定数据库
natici 2009-05-05
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 asdf4525qd 的回复:]
引用 10 楼 natici 的回复:
没看懂9楼的话。
我才学c# 1个月,之前没任何编程经验,现在要做毕业设计了,唯有努力学习。。望赐教!能否直接给出重新绑定数据库的代码呢?难道要new dataset,然后fill再dataGridView1.DataSource=dataset.tables?

为什么毕设之前会没有任何编程经验???????????????????????????????????
很不理解
[/Quote]
很简单的道理,学完c语言,一直就到现在学c#,1个月后毕业设计,以前没写过程序,就这么简单。
duping9626 2009-05-05
  • 打赏
  • 举报
回复
this.dataGridView1.Refresh(); 是重绘控件
如果不想重读数据库,则可以在本地添加
如你的DataGrid绑定的为DataTalbe
则可以

DataTable dt=(DataTable)this.Datagrid.DataSource;
DataRow dr=dt.NewRow();
dr["名"]="新插入的值";
dr["价"]="新插入的值";
dt.Rows.Add(dr)
dt.AccetpChange();
巴掌锅 2009-05-05
  • 打赏
  • 举报
回复
把操作数据库的语句写在一个方法里面
在button事件里面重新调用方法!!!!
yinseguiji 2009-05-05
  • 打赏
  • 举报
回复
dataGridView1没有databind方法,这个是winform的控件,它不需要这个方法,会自动显示出更新过的数据源
yinseguiji 2009-05-05
  • 打赏
  • 举报
回复
如果你把它绑定到一个dataset,那么更新这个dataset就可以了
Geminiyxj 2009-05-05
  • 打赏
  • 举报
回复
今天刚从朋友那听说...异步刷新...AJAX
bean-boy 2009-05-05
  • 打赏
  • 举报
回复
h呵呵,你可以在属性里面找那个刷新啊。
加载更多回复(28)

111,126

社区成员

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

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

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