找回密码
 立即注册

QQ登录

只需一步,快速开始

hezhilin

初级会员

34

主题

100

帖子

450

积分

初级会员

积分
450

活字格认证

hezhilin
初级会员   /  发表于:2013-5-30 00:02  /   查看:5567  /  回复:3
我使用的Spread7做asp.net开发!发现我如果在一个字符型单元格中输入字符  "01001"  ,要提取单元格的值存入数据库时,我先调用 FpSpread1.SaveChanges()  ,然后使用FpSpread1..Cells(2, 0).Text  取这一单元格的值,返回值就变成 1001了,前导0自动就丢失了!请问是什么原因?

注: 我是使用  FpSpread1.DataSource = dtBody
                      FpSpread1.DataBind()
    这样进行数据绑定的,要操作的这一列在dtbody表中是字符型字段!

3 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-5-30 09:36:00
沙发
回复 1楼hezhilin的帖子

hezhilin 你好,

如果数据库字段为字符型,那么取值结果是不正常的。
我使用以下代码设置没能重现问题:

  1. protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             if (IsPostBack)
  4.             {
  5.                 return;
  6.             }

  7.             DataTable dt = new DataTable();
  8.             dt.Columns.Add("字符列", typeof(System.String));
  9.             dt.Columns.Add("数字列", typeof(System.Int32));

  10.             dt.Rows.Add("01001", "01001");

  11.             this.FpSpread1.DataSource = dt;
  12.             FpSpread1.DataBind();
  13.             
  14.             this.FpSpread1.SaveChanges();

  15.             string stringcelltext = this.FpSpread1.Sheets[0].Cells[0, 0].Text;
  16.             string intcelltext = this.FpSpread1.Sheets[0].Cells[0, 1].Text;
  17.         }
复制代码


看是否和你描述的问题一致?
回复 使用道具 举报
hezhilin
初级会员   /  发表于:2013-5-31 22:05:00
板凳
我已解决了这个问题,一般字符型字段,我会给这一列设为TEXT列类型,但正好所用这一列有参照,是通过点右边小按钮参照其他数据生成,做的自定义参照列类型,没从TEXT列类型继承,我改为从TEXT列类型继承就好了!谢谢!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-6-3 10:05:00
地板
回复 3楼hezhilin的帖子

感谢问题反馈/
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部