找回密码
 立即注册

QQ登录

只需一步,快速开始

wenchaojian

银牌会员

6

主题

9

帖子

3198

积分

银牌会员

积分
3198

活字格认证

wenchaojian
银牌会员   /  发表于:2013-3-9 15:08  /   查看:5290  /  回复:3
对于从数据库查询的结果,直接绑定到控件中后,如果要判断哪一列(单元格)的celltype,有些列是可以的,有些列会报未将对象引用到实例,是什么意思。

比如 sql server 2000下的varchar(2000)这样的数据类型,直接绑定的,怎么都拿不到列的celltype,是为什么。如
ct = e.SheetView.Columns[j].CellType;
if (ct.ToString() == "ComboBoxCellType")这句就会报错,但如果在绑定数据后,把那一列改为spread的单元格类型中的文本类型,就可以拿到了。


因为从数据库中查出的列可能有几十列,并且有可能是动态列,就不好这样语代码来指定哪一列在spread的数据类型;

3 个回复

倒序浏览
robertxff
银牌会员   /  发表于:2013-3-9 16:46:00
沙发
绑定前要设置列类型,或设置自动绑定列类型试试
回复 使用道具 举报
wenchaojian
银牌会员   /  发表于:2013-3-9 17:04:00
板凳
回复 2楼robertxff的帖子

自动绑定列类型如何写,语句??
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-3-11 15:42:00
地板
wenchaojian 你好

我的意思是,你希望自己来制定列的单元格类型,是这样吗,可以设置DataAutoCellTypes 为false,代码如下:
  1. FarPoint.Web.Spread.SheetView sv;
  2. sv = FpSpread1.ActiveSheetView;
  3. string conStr = "Provider=Microsoft.JET.OLEDB.4.0;data source= d:\\Patients2000.mdb";
  4. string sqlStr = "SELECT * FROM Patients";
  5. System.Data.OleDb.OleDbConnection conn  = new System.Data.OleDb.OleDbConnection(conStr);
  6. DataSet ds = new DataSet();
  7. System.Data.OleDb.OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter(sqlStr, conn);
  8. sv.DataAutoCellTypes = true;
  9. sv.DataMember = "Patients";
  10. da.Fill(ds);
  11. sv.DataSource = ds;
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部