jpg
方法一:FpSpread1.DataSource = SqlDataSource1;
预先设置SqlDataSource1的各项参数(包括查询,更新,删除,插入),通这样绑定数据后:
数据正常显示,单元格类型与数据库字段类型不匹配,commanbar上边的 更新、删除、插入 等操作无效果。
方法二:FpSpread1.DataSourceID = “SqlDataSource1”;
预先设置SqlDataSource1的各项参数(包括查询,更新,删除,插入),通这样绑定数据后:
数据正常显示,单元格类型与数据库字段类型不匹配,commanbar上边的 更新、插入成功,删除操作无效果。
方法三:FpSpread1.DataSource = DataSet;
先自己写代码:生成DataSet,然后绑定到FpSpread1,通过这样绑定数据后:
数据正常显示,单元格格式自动匹配数据库字段类型(文本、整数、小数、bit型都能自动识别),这种方式的,更新、插入、删除 就只能自己写代码了。
方法四:在界面设计时候就直接绑定到SqlDataSource1,方法参考:
http://gcdn.grapecity.com/showtopic-2343.html
数据显示正常,单元格格式自动匹配数据库字段类型(在界面绑定的时候,列字段类型就生成了)commanbar上边的 更新、插入、删除 功能全部都成功。
综上所述:
方法一: 最差的,需要自己写代码设置字段类型,自己写代码进行数据库操作。
方法四: 看起来最完美,但是不够灵活,需要在页面生成前就预先进行配置,非常有局限性。
我比较喜欢方法三:这是最灵活的,更新、插入、删除的代码虽不能偷懒,但可以自己掌控。字段类型可以不用特别考虑了,甚至列标题都不用在FpSpread设置,在生成DataSet的时候,就可以通过SQL把列标题换了。
因为做demo的原因,选用Access数据库,与之前用MS SQL数据库有个不同的地方,必须要特别说明 就是插入行操作有区别:因为ID为自动编号,插入行应该不用修改,就可以自动生成,发现改用Access数据库后,必须要输入ID后才能插入更新成功,而且客服端要重新DataBind才能显示,无论用哪种绑定方式都是这样。之前用MS SQL数据库做测试没有个些问题。
发现用SqlDataSource设定Access数据源时候使用的是绝对路径,AccessDataSource使用的是相对路径,所以做demo选用了AccessDataSource。
虽然DataSource是个object对象,但例程里面都是 绑定到 DataSet,所以绑定方式一、二应该是错误的绑定模式,发现所有例程都没有这样绑定的,算是我一厢情愿吧.
|
|