怎么把数据库中的数据实时反映到dataGridView

如何把数据库中的数据实时反映到dataGridView
小弟最近正在忙一个项目,大概就是把从串口接收到的数据存到数据库中,并且界面上的dataGridView要能实时显示数据库中表单的变化情况,由于每3秒串口就会收到一点数据,所以一开始我试着用定时器定时,每3秒dataGridView读一次数据库,但是这样做的后果就是界面会变得很卡,而且更新的数据直接显示在dataGridView最底下一栏中,也不是很方便看。各种百度之后发现有人建议用代理事件,新开个线程等方法,但是作为一个初学者,这对我来说有点儿困难,所以想请教各位有没有其他简单易行的方法,提供点儿思路,或者能给一些代理事件和开个线程之类的例程...


第一次在csdn上求助,希望得到大家的帮助...
------解决方案--------------------
使用  sqldependency  数据源改变 可以通知UI层,不过对于你来说  可能难了点。
------解决方案--------------------
从串口读到的数据显示在最后一行 你可以使用DataTable.add绑定到datagridview中  即DataTable第一行显示最新数据

而取最新的数据库数据这个对你的业务来说没必要,  你新添加到数据业务起始是在串口传过来数据.  当你需要把数据存到数据库中的时候为何不往DataTable中add一行呢??
------解决方案--------------------
如果只有一个用户使用的话,确实可以用5楼的办法
但是如果有多个用户访问,并且用户可以修改删除数据的话,还是要去数据库中获取
你可以将数据表设定为全局变量,在线程中访问数据库,在timer中只负责将数据表绑定到datagridviw
包括你的串口通信,都应该是放到线程中,不要都用主线程去处理