TableNewRow这个事件改怎么用?

问题描述

usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespace事件测试{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}SqlConnectioncon=newSqlConnection("server=.;database=pubs;uid=sa;pwd=");DataSetds=newDataSet();byte[]binaryDataResult=null;//用来接收二进制数据privatevoidbutton1_Click(objectsender,EventArgse){try{SqlDataAdaptersda=newSqlDataAdapter("select*fromtable1",con);sda.Fill(ds,"st");ds.Tables["st"].TableNewRow+=newDataTableNewRowEventHandler(TableNewRow);if(ds.Tables[0].Rows.Count!=0){testmy=newtest();binaryDataResult=my.CompressionDataSet(ds);}else{MessageBox.Show("表已经没有数据");}}catch(Exceptionx){MessageBox.Show(x.Message);}finally{con.Close();}}privatevoidTableNewRow(objectsender,DataTableNewRowEventArgse){try{if(binaryDataResult.Equals("")){MessageBox.Show("没有数据");}else{testmy=newtest();ds=my.DecompressionDataSet(binaryDataResult);this.dataGridView1.DataSource=ds.Tables["st"];//数据反序列化之后绑定}}catch(Exceptions){MessageBox.Show(s.Message);}}}}我按下按扭没有任何改变!!!有那位大虾用过没?我是想在往dataset里面填充的时候就直接绑定到datagrid!!

解决方案

解决方案二:
this.dataGridView1.DataSource=ds.Tables["st"];//数据反序列化之后绑定是不是这行问题。ST是表名?你改成this.dataGridView1.DataSource=ds.Tables[0];试一下。
解决方案三:
我觉得你可以这样,在按下按钮后给DataSet添加一行记录,然后再把显示控件和DataSet重新绑定
解决方案四:
引用楼主mc520的帖子:

usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespace事件测试{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}…我按下按扭没有任何改变!!!有那位大虾用过没?我是想在往dataset里面填充的时候就直接绑定到datagrid!!

我觉得还是把dataset填充完毕之后再绑定比较好,按照楼主这种想法,那不是在dataset填充的过程中,datagrid不停的调用该事件,不停的进行重新绑定-_-另外TableNewRow事件是在使用NewRow创建DataRow后激发。例如下面这样的代码:DataTabletable=newDataTable();DataRowrow;//table结构初始过程table.Columns.Add("id");table.Columns.Add("name");...Ttable.ableNewRow+=newDataTableNewRowEventHandler(TableNewRow);row=table.NewRow();//这一句事件会被触发row["id"]=5;row["name"]="Name1";...table.Rows.Add(row);privatevoidTableNewRow(objectsender,DataTableNewRowEventArgse){MessageBox.Show("CallEvent");}
解决方案五:
[code=C#]usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespace事件测试{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}SqlConnectioncon=newSqlConnection("server=.;database=pubs;uid=sa;pwd=");DataSetds=newDataSet();byte[]binaryDataResult=null;//用来接收二进制数据privatevoidbutton1_Click(objectsender,EventArgse){try{SqlDataAdaptersda=newSqlDataAdapter("select*fromtable1",con);//sda.Fill(ds,"st");//sda已经Fill到sttable,所以不会产生后面的TableNewRow事件DataTabletb=newDataTable("st");ds.Tables.Add(tb);ds.Tables["st"].TableNewRow+=newDataTableNewRowEventHandler(TableNewRow);sda.Fill(ds,"st");if(ds.Tables[0].Rows.Count!=0){testmy=newtest();binaryDataResult=my.CompressionDataSet(ds);}else{MessageBox.Show("表已经没有数据");}}catch(Exceptionx){MessageBox.Show(x.Message);}finally{con.Close();}}privatevoidTableNewRow(objectsender,DataTableNewRowEventArgse){try{if(binaryDataResult.Equals("")){MessageBox.Show("没有数据");}else{testmy=newtest();ds=my.DecompressionDataSet(binaryDataResult);this.dataGridView1.DataSource=ds.Tables["st"];//数据反序列化之后绑定}}catch(Exceptions){MessageBox.Show(s.Message);}}}}[code]
解决方案六:
点击按钮后给DataSet添加一行新记录,然后重新绑定datagrid数据源即可
解决方案七:
4楼的兄弟感谢你但是还是没有任何反映啊!!
解决方案八:
有人在帮我看看吗?顶

时间: 2024-08-01 17:47:31

TableNewRow这个事件改怎么用?的相关文章

C# Windows Phone 8 WP8 开发,将WebClient的DownloadStringCompleted事件改成非同步的awiat方法。

原文:C# Windows Phone 8 WP8 开发,将WebClient的DownloadStringCompleted事件改成非同步的awiat方法. 一般我们在撰写Windows Phone APP 的时候,很常使用WebClient来帮我们完成抓取网路资料的动作,并且利用DownloadStringCompleted的事件去帮我们得知载入的事件已经完成了,可以让我们进行下一步的动作,但是若我们想要将WebClient的DownloadStringCompleted事件改成非同步的aw

javascript-js事件代理的一点问题?

问题描述 js事件代理的一点问题? <ul id="UL" > <li id="L1" > L1 <p>哈</p> <p>士</p> <p>奇</p> </li> <li id="L2" >L2</li> <li id="L3">L3</li> <li id=&quo

JS中的事件冒泡与捕获

刚接触 JS 的那个时候,啥也不懂,只想着如何利用 Google.百度到的函数来解决实际的问题,不会想到去一探究竟. 渐渐的,对 JS 的语言的不断深入,有机会去了解一些原理性东西.最近在看 JQuery 源码,感触很多,总想着用原生的 JS 去实现自己的一个 JQuery 库.说实在的,JQuery 里面很多函数和思路,是千百开源工作者长期的贡献,哪能是短时间就能消化的了. 最近再次碰到 addEventListener函数(MDN 上关于 addEventListener 的介绍,很详细),

急~求助~~如何把VB.NET的DataGrid改成C#.NET中的DataGrid一样

问题描述 vb.net的DataGrid中数据显示时`第一列有个指向改条数据的箭头列如何把这列去掉并且双击该条数据时响应DataGrid1_DoubleClick双击事件或让VB.NET的DataGrid1_DoubleClick双击事件可以向C#.NET的双击事件一样点该列的随便那里都可以响应该事件 解决方案 解决方案二:饿``上面写错``是象asp.net那样``无指向记录的箭头那一列并能点击改记录任何地方都能响应DataGrid1_DoubleClick事件解决方案三:DataGrid有个

flex button事件响应

问题描述 <?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()"> <mx:Script> <![CDATA[ import mx.contro

jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题_jquery

HTML结构:很简单,就一个input,一个div,能说明问题就OK了: <input type="text" value="默认值"><br/><br/><div>搜索</div> 想要实现的结果: 1.input框获取焦点时value为"",失去焦点时value为"默认值":-----这个很好实现: 2.当在input框中输入要搜素的内容后,点击div搜索,要求控

教程/dreamweaver/提高 Dreamweaver行为全接触(2)

dreamweaver|教程 第二节 不知你用过本站的留言薄没有,当你写完留言按确定时,马上弹出来一个感谢消息框,是不是觉得很体贴?那就是我今天讲的主题-Popup Message(弹出消息框) 一.认识 Popup Mesage编辑窗口 在DW编辑框中按F8调出Behaviors面板,点击选Popup Message立刻出现以下窗口:   这是不是太简单了无需太多言语介绍,在空白处填入你要提示的消息填完按OK! 二.Popup Message的常见应用(也就是范例) 在讲范例之前我先讲几个要用

Dreamweaver行为全接触(2)

dreamweaver 第二节 不知你用过本站的留言薄没有,当你写完留言按确定时,马上弹出来一个感谢消息框,是不是觉得很体贴?那就是我今天讲的主题-Popup Message(弹出消息框) 一.认识 Popup Mesage编辑窗口 在DW编辑框中按F8调出Behaviors面板,点击选Popup Message立刻出现以下窗口: 这是不是太简单了无需太多言语介绍,在空白处填入你要提示的消息填完按OK! 二.Popup Message的常见应用(也就是范例) 在讲范例之前我先讲几个要用到的事件(

Dreamweaver 行为的使用

dreamweaver DreamWreaver自带的行为动作有不少,下面就分别介绍. 1.Call JavaScript Call JavaScript(调用JavaScript)动作允许使用行为控制器指定当事件发生时将被执行的自定义函数或JavaScript代码行. 要使用Call JavaScript(调用JavaScript)动作:选择一对象并打开行为控制器,单击加号按钮,从动作弹出菜单中选择Call JavaScrip,在弹出的对话框中键入将要执行的JavaScript或函数名. 2.