初学者提问:Winform程序,数据绑入DataGridView之后如何添、删、改?

问题描述

我在form上放了一个DataGirdView和一个Button,点击Button后会从数据库里读取数据绑到DataGirdView里,DataGirdView在设计时勾选了“启用添加”“启用删除”“启用编辑”,但是修改后的数据怎么保存回数据库啊?我以前写过VB6.0的程序,给表格绑定了记录集后,在表格上的添加、删除,修改等操作都自动保存的数据库里了,我都不用写代码。C#中怎么做啊?

解决方案

解决方案二:
要加一个button事件,把要做的处理放在那里
解决方案三:
首先,不要用那自带的编辑删除修改,那个东西(我本人)使用起来感觉很不方便。在gridview添加三个按钮列,添,删,改。然后使用gv的CellClick事件,在方法里,判断e.ColumnIndex是哪个列号,根据列号判断是进行添、删、改的哪个操作,然后获取行的信息,再进行操作就可以了。哦,对了,感觉添加应该是放在gv外的。
解决方案四:
可以啊在外面再加一个button保存按钮,定义一个全局的datatable查询出来的数据放在datatable里面,然后对dataGridView进行增删改操作的时候就对这个datatable进行增删改,然后OracleDataAdapteroda=newOracleDataAdapter(com);//com的sql语句跟绑定数据用的查询语句一样oda.Fill(dt22);OracleCommandBuilderocb=newOracleCommandBuilder(oda);inti=oda.Update(这里放操作后的datatable);if(i>0){isSuccess=true;}else{isSuccess=false;}然后datatable.acceptchange();可以实现批量操作了
解决方案五:
http://blog.csdn.net/huwei2003/article/details/17996157
解决方案六:
用sql语句:updata,select,delete
解决方案七:
我基本照抄了4楼发的地址中的例子(去掉了删除行的处理),但是报错“如果分配给命令的连接位于本地挂起事务中,ExecuteReader要求拥有事务,命令的Transaction属性尚未初始化”。以下是所有代码,帮忙看下哪儿有问题啊??namespacetest1{publicpartialclassForm1:Form{OleDbConnectionconn;OleDbDataAdapterda;OleDbTransactiontrans;publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){}privateDataTabledbconn(Stringsqlstr){Stringconnstr="Provider=Microsoft.ACE.OLEDB.12.0;DataSource=test1.accdb";conn=newOleDbConnection(connstr);conn.Open();da=newOleDbDataAdapter(sqlstr,conn);DataTabledt=newDataTable();da.Fill(dt);conn.Close();returndt;}privatevoidbutton1_Click(objectsender,EventArgse){Stringsqlstr="select*fromt1orderbyiddesc";dataGridView1.DataSource=dbconn(sqlstr);}privatevoidbutton2_Click(objectsender,EventArgse){Stringsqlstr="select*fromt1";DataTabledtu=newDataTable();dtu=dbconn(sqlstr);dtu.Rows.Clear();DataTabledts=newDataTable();dts=(DataTable)dataGridView1.DataSource;for(inti=0;i<dts.Rows.Count;i++){dtu.ImportRow(dts.Rows[i]);}try{conn.Open();trans=conn.BeginTransaction();OleDbCommandBuildercb=newOleDbCommandBuilder(da);da.Update(dtu);trans.Commit();conn.Close();dtu.AcceptChanges();}catch(Exceptionex){MessageBox.Show(ex.Message.ToString());trans.Rollback();}}}}

时间: 2024-10-26 14:09:26

初学者提问:Winform程序,数据绑入DataGridView之后如何添、删、改?的相关文章

数据包-如何用C#的winform程序后台访问并且登入大型网站?

问题描述 如何用C#的winform程序后台访问并且登入大型网站? 如何用C#的winform程序后台访问并且登入大型网站?我想做一个百度贴吧一键签到的功能来练手.大致想法是用C# 写一个winform程序用户输入自己的帐号密码之后 我模拟一个数据包发送给百度 得到一个类似session的东西然后再去进行贴吧签到(应该是访问某个地址即可,暂时还没研究) 难点就是 怎么用c#来完成我上述说的网络访问的过程.. 解决方案 用HttpWebRequest post数据,post的格式你可以先抓包分析一

C#新手提问:关于C# winform程序

问题描述 C#新手提问:关于C# winform程序 假设有窗体Form1和Form2通过按钮事件从窗体1跳转到窗体2,button_click事件可以这么写:Form2 aa = new Form2();aa.Show(); 还有一种写法:new Form2().Show();这两种方法都能达到跳转的目的,第一种无须多解释,请问第二种是什么意思?如果在Form1窗体的构造函数中加上重载参数(int n)呢?有啥作用,谢谢 解决方案 第二种写法和第一种是一样,但是你没有办法在后面再用了.很多情况

c语言-C语言初学者提问,不会修改程序

问题描述 C语言初学者提问,不会修改程序 可以运行,但是达不到目的,不会修改 程序代码: typedef struct /* 学生结构 / { short status; / 数据状态,0:正常 1:删除 / char number[10]; / 学号 / char name[20]; / 姓名 / char sex[3]; / 性别 / int age; / 年龄 / char place; / 籍贯 / char department; / 系别 / char major; / 专业 / i

WinForm程序虚拟分页(实时加载数据)

Windows应用程序中很少见有分页的程序 文件夹中有上万个文件的时候微软也没让用户来翻页查看列表 记事本中的文字,某个系统功能的列表也都没有分页.(Word文档是个例外) 知道web中的分页是怎么做出来的朋友一定知道winform做分页会更简单 winform程序一样也不允许用户一下子把数据库中上万条数据全部检索出来 那么怎么让winform程序即不用翻页,又能分部加载数据呢 代码如下: 一:窗体类 Code    public partial class Form1 : Form    { 

java代码-java初学者提问 在类中 用static成员变量实例化自身类 程序的执行顺序过程是怎样的?

问题描述 java初学者提问 在类中 用static成员变量实例化自身类 程序的执行顺序过程是怎样的? class Demo03 { public static void main(String[] args) { A.show(); } } class A { //构造方法 A(){ System.out.println("构造方法执行"); System.out.println(b); System.out.println(c); } static A a=new A(); sta

c#-winform程序listview控件修改数据后动态刷新效果

问题描述 winform程序listview控件修改数据后动态刷新效果 在另一个窗口中修改好listview控件数据,并能在listview立刻显示出来. 怎么实现求大神指点!谢谢 解决方案 参考:http://bbs.csdn.net/topics/360140208 解决方案二: 你所谓的立刻是什么意思? 解决方案三: 在Form2窗体中声明 public Form1 f1; Form1按钮单击事件中: Form2 f2 = new Form2(); f2.f1 = this; f2.Sho

excel数据-Winform选择excel文件在datagridview显示

问题描述 Winform选择excel文件在datagridview显示 Winform选择excel文件在datagridview显示,如果excel没打开就会报错 解决方案 C# 读取Excel中的数据 解决方案二: C# 获取Excel工作薄中Sheet页(工作表)名集合

C#winform程序,需要录入分秒毫秒数据到SQLserver数据库,请问界面和数据库分别怎么设计

问题描述 C#winform程序,需要录入分秒毫秒数据到SQLserver数据库,请问界面和数据库分别怎么设计 做一个管理运动员百米冲刺成绩和3000米成绩的winform程序,想录入分,秒,毫秒数据到SQLserver数据库. 问题1,什么控件支持录入分秒毫秒数据?或者用输入框的话什么格式能准确的录入到数据库中? 问题2,数据库用什么数据类型?可以方便的实现排序,就是按照时间长短排名,不需要年月日,只需要分,秒,毫秒.连小时都不需要,因为3000米跑下来也就是十几分钟的事情.而百米冲刺又要求有

给Gridview绑定数据,数据是存在项目里的, 求帮谢谢!运行下面代码报错:当控件被数据绑定时,无法以编程方式向 DataGridView 的行集合中添加行

问题描述 #region绑定DataGridView方法privatevoidDataGridViewBind(){DataTabledtSupplier=_SupplierFacade.GetSMSupplierContacterInfoByFid(iSupplierID);DataViewdvSupplier=dtSupplier.DefaultView;//((DataTable)dgvSupplierContInfo.DataSource).Rows.Add();dvSupplier.S