CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  VB.NET

[求救]dataColumn中设置了expression出错!!!!!!!!!!!分不够就加哈~_~

楼主usersmj(狼之舞)2005-04-03 00:17:11 在 .NET技术 / VB.NET 提问

在加载表后,设置某列的expression  
  例如:  
  table1.columns["extendedprice"].expression="unitPrice   *   quantity";  
   
  然后在重新加载或update时,出错。  
   
  出错信息:  
  来自SourceColumn"ExtendedPrice"的列映射失败,  
  原因在于DataColumn"extendedPrice"是计算所得的列。  
   
  而这个ExtendedPrice是表中实际存在的列,希望能自动计算,请问该如何更新(update)呢? 问题点数:30、回复次数:12Top

1 楼usersmj(狼之舞)回复于 2005-04-03 10:26:18 得分 0

高手们帮帮忙呀Top

2 楼ofei(nop)回复于 2005-04-03 18:28:27 得分 5

把这个表达式放到数据库表中  
  不需要去更新此字段  
  数据库会自动更新Top

3 楼hamadou(闵峰--为了理想而奋斗)回复于 2005-04-04 08:59:26 得分 10

1。可以使用楼上的方法在数据库中用语句解决,但每次修改数据后一定要重新填充,否则数据不会跟着变化。  
  2。也可以在相应的列的textbox中使用委托事件,当unitPrice   或者   quantity列的数据被修改,光标离开textbox的时候,该列extendedprice的数据改变。最后还是要进行update。这个时候就不要使用计算列了(即便它是真正的列,但设置了expression后,还是被认定为计算列)Top

4 楼usersmj(狼之舞)回复于 2005-04-04 21:04:23 得分 0

To:   hamadou(闵峰)  
    请问在  
  2中后面如何取消expression,初学,请多多指教,谢谢Top

5 楼usersmj(狼之舞)回复于 2005-04-04 23:15:11 得分 0

原题如下:  
  表tbname   中有A、B、   C三字段,其中C=A+B  
  填充到Datagrid1中(可以支动态改更A、B,更改后计算出C)  
   
  代码如下:  
      Private   Sub   FrmFinance_Load(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   MyBase.Load  
                Try  
                          Me.OleDbConnection1.Open()  
                          Try  
                                Me.ObjDataSet.tbname.Clear()  
                                Me.Adapter1.Fill(Me.ObjDataSet,   "tbname")  
                          Catch   ex   As   Exception  
                                MessageBox.Show(ex.Message)  
                          End   Try    
                Catch   ex   As   Exception  
                          MessageBox.Show("数据连接出错,请与管理员联系")  
                Finally  
                          Me.OleDbConnection1.Close()  
                End   Try  
          '  
            Me.ObjDataSet.tbname.columns["C"].expression="A+B";      
  End   Sub  
   
  出错:  
  在重新加载或update时,出错。  
   
  出错信息:  
  来自SourceColumn"ExtendedPrice"的列映射失败,  
  原因在于DataColumn"extendedPrice"是计算所得的列。  
  Top

6 楼usersmj(狼之舞)回复于 2005-04-04 23:19:20 得分 0

上面出错部分打错了,是  
  出错:      
  在重新加载或update时,出错。      
     
  出错信息:      
  来自SourceColumn     "C"的列映射失败,      
  原因在于DataColumn     "C"是计算所得的列。Top

7 楼hamadou(闵峰--为了理想而奋斗)回复于 2005-04-05 08:15:55 得分 10

我的意思就是不使用计算表达式,在你将unitPrice或   quantity列的值改变时,相应的textbox的Validating事件或validated事件来将他们的乘积赋给extendedprice。要做相应的事件关联。Top

8 楼weiljj()回复于 2005-04-05 08:36:54 得分 5

ExtendedPrice是表中实际存在的列,希望能自动计算,那你不如在那個表中設trigger不更方便?Top

9 楼usersmj(狼之舞)回复于 2005-04-05 19:27:36 得分 0

请问如何在相应的列的textbox中使用委托事件,能否改一段代码,谢谢  
   
  初学,劳驾了哈Top

10 楼usersmj(狼之舞)回复于 2005-05-10 10:56:52 得分 0

天啦,求命呀,怎么到现在还没人帮忙给我指指路呀  
  大哥大姐叔叔阿姨弟弟妹妹们帮帮忙三Top

11 楼usersmj(狼之舞)回复于 2005-05-30 14:35:54 得分 0

唉,还是结了吧Top

12 楼hamadou(闵峰--为了理想而奋斗)回复于 2005-05-30 14:41:23 得分 0

使用表样式时  
  dim   c1   as   new   datagridtextboxcolumn()  
  c.mappingname="column_name"  
  addhandler   c1.textbox.validated   ,addressof   mytextboxvalidated()  
  然后在mytextboxvalidated事件里写代码做刷新,写好后要refresh相应的dataadapter控件。  
  不过  
  看过篇文章,说自动刷新的方法没有太好的。  
  Top

相关问题

  • 数据库出错!!! 分不够再加!
  • dynamic_cast<type *>(expression)出错
  • 出错 出错
  • 使用filter()时出错:Expression is not valid.
  • 急急急,分不够可以再加!DoModal()函数出错!
  • 写系统日志出错,权限不够??
  • oracle出错,高分求救,不够可加
  • win2000 iis 出错 (iis高手请进,分不够再加)
  • 数组出错,各位帮一帮,分不够再加
  • 生成文件出错(权限不够)该如何解决

关键词

  • 映射
  • 数据
  • 代码
  • 数据库
  • me
  • extendedprice
  • 出错
  • datacolumn
  • 加载
  • 计算

得分解答快速导航

  • 帖主:usersmj
  • ofei
  • hamadou
  • hamadou
  • weiljj

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo