我以前是用Delphi+SqL写数据库编程的,现在想转C#,发现有相同的地方,也有不同的地方。现在都记下来,怕一下子又忘记了。
1.显示数据
Delhpi里用Dataset+DataSource+DBGrid,且DBGrid的记录移动会相应更改当前记录;
C#中呢,开始我用DataSet.DataTable+dataGridView,发现很郁闷的事情:界面上移动dataGridView的记录,我却从DataSet中得不到当前的记录,这对于用惯Delphi的我太蛋疼了,唉,用了个笨办法,从dataGridView.CurrentRow.Cells取相关主键字段,然后再建一个DataSet(DS2),根据主键字段去查询。好的方法请往下看
2.操作数据(添加,修改,删除)
Delphi里这些操作实在太简单了,DataSet.Append; DataSet.Edit; DataSet.Delete; 最后用DataSet.Post;
到了C#呢?它的DataSet没有上面类似的函数,我又开始蛋疼了。唉,又用了个最笨的方法,我知道C#有执行命令的Command呀,那我就把语句(什么insert into,update ,delete)写好,把要的值就放在界面上让用户输入,输入完了按确定,先检查一下值的有效性,再赋值给语句的参数,然后执行,执行完后刷新显示的DataSet,还要重新绑定dataGridView。一个字,太累了。好的方法请往下看
3.事务
这个,C#的事务要比Delhpi的事务好控制多了,C#有个事务类
SqlTransaction myst = mydb.BeginTransaction();
后面再把这个myst对象赋值给相关执行命令,最后myst.Commit();或者myst.Rollback();其中可以设置事务级别等,具体可以查看SqlTransaction类的相关帮助。
4.C#比Delphi更酷的数据操作方法
Delphi中的DataSource其实在C#中也有对应的,那就是BindingSource,这个比Delphi的要强很多,且功能可谓广泛,可以绑定很多东西,例如数组等。下面看BindingSource用于数据库操作的方法,
public DataSet DsCustomer;
public BindingSource BsCustomer;
DsCustomer = new DataSet();
DsCustomer = dbManage.getDataSet("select * from Customer", "Customer");//自定义的一个过程,返回DataSet
BsCustomer = new BindingSourc