上一篇我们讲到了如何开发一个自定义的数据源组件,期间提到了一个疑问:

如何避免用户去修改我们设计好的输出,以及列的属性呢?

其实方法也比较简单,我们添加下面的代码即可

   1:          public override void DeleteOutput(int outputID)
   2:          {
   3:              throw new Exception("不能删除输出");
   4:          }
   5:   
   6:          public override IDTSOutput90 InsertOutput(DTSInsertPlacement insertPlacement, 
   7:              int outputID)
   8:          {
   9:              throw new Exception("不能插入输出");
  10:          }
  11:   
  12:          public override void DeleteOutputColumn(int outputID, int outputColumnID)
  13:          {
  14:              throw new Exception("不能删除列");
  15:          }
  16:   
  17:          public override IDTSOutputColumn90 InsertOutputColumnAt(int outputID, 
  18:              int outputColumnIndex, string name, string description)
  19:          {
  20:              throw new Exception("不能增加列");
  21:          }
  22:          public override IDTSCustomProperty90 SetOutputColumnProperty(int outputID, 
  23:              int outputColumnID, string propertyName, object propertyValue)
  24:          {
  25:              throw new Exception("不能修改列的属性");
  26:          }

也就是是重写有关的方法,当用户尝试增加,或者删除,或者修改的时候,抛出相应的异常。这个我们一般称为“设计时支持”

测试结果如下

 
 
 
 

本文由作者:陈希章 于 2009/6/21 10:44:53 发布在:http://www.cnblogs.com/chenxizhang/
本文版权归作者所有,可以转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
更多博客文章,以及作者对于博客引用方面的完整声明以及合作方面的政策,请参考以下站点:陈希章的博客中心

如何在自定义数据源组件中限制用户的更改相关推荐

  1. 谷歌修复安卓蓝牙组件中无需用户交互的 bug

    聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 本周,谷歌修复了安卓蓝牙组件中的一个严重缺陷.如未被修复,则该漏洞可在无需用户交互的情况下遭利用,甚至可被用于自传播蓝牙蠕虫. 谷歌已经 ...

  2. 为SSIS编写自定义数据流组件(DataFlow Component)之进阶篇:自定义编辑器

    我们之前几篇讨论过自定义数据流组件的一些技术,分别如下 入门篇 http://www.cnblogs.com/chenxizhang/archive/2009/06/20/1507467.html 数 ...

  3. 微信小程序 - 自定义组件中类似页面 onShow 的页面显示就触发的生命周期钩子函数(页面回退时更新数据常用, 例如回退页面更新子组件数据, 回退更新子组件中 data 内容)

    前言 在微信小程序中,用户回退页面触发更新数据的操作,一般都是在 页面 onShow() 中写上执行更新的函数即可. 但如果咱们把数据和方法都写在了自定义子组件中,那么用户回退页面时, 更新数据就成了 ...

  4. 修改taro-ui的样式,在自定义组件中使用taro-ui,修改ui框架样式

    其实修改ui框架的样式还是很容易碰见的,但是每个框架处理的方式可能还有点不太一样, taro编译出来的小程序样式. addGlobalClass 添加这个 只能让我们修改页面中的taro-ui 样式 ...

  5. 【转载】SQL Server 2008 中新建用户登录并指定该用户的数据库

    提要:我在 SQL Server 中新建用户登录时,出现了三种错误,错误代码分别是 18456.15128.4064 -----------------------------------正 文 -- ...

  6. 小程序组件中的监听事件

    小程序组件中的监听事件 需求: 微信小程序中,如果进行使用了component级的组件的话,在一些情况下,父组件中使页面中的数据进行变化,子组件中 的数据不会一起变化,由此可以使用该方法 方法: 使用 ...

  7. spring security默认登录页面登录用户,和自定义数据源

    一.默认登录页面 请求 /hello 接口,在引入 spring security 之后会先经过一些列过滤器 在请求到达 FilterSecurityInterceptor时,发现请求并未认证.请求拦 ...

  8. apache spark_如何将自定义数据源集成到Apache Spark中

    apache spark 如今,流数据是一个热门话题,而Apache Spark是出色的流框架. 在此博客文章中,我将向您展示如何将自定义数据源集成到Spark中. Spark Streaming使我 ...

  9. 如何将自定义数据源集成到Apache Spark中

    如今,流数据是一个热门话题,而Apache Spark是出色的流框架. 在此博客文章中,我将向您展示如何将自定义数据源集成到Spark中. Spark Streaming使我们能够从各种来源进行流传输 ...

最新文章

  1. .NET弹出对话框小结
  2. 安全访问服务边缘(SASE)是什么?
  3. jsp中文件下载的实现
  4. 递归调用cl_crm_oi_docx_transform_rt=process_node_cc
  5. php如何使用遮罩,CSS绝对定位实现窗口遮罩功能:2019年1月15日作业
  6. javascript --- [express+ vue2.x + elementUI]登陆的流程梳理
  7. php如何判断是否关注,微信公众号判断用户是否已关注php代码解析
  8. 服务器重置密码后无法启动不了怎么办,Windows Server 2008 R2 忘记密码的处理方法...
  9. jQuery实现高亮显示网页关键词的方法
  10. SpringBoot-DDD领域驱动设计的概念
  11. android lint
  12. OEM JDM ODM OBM的区别
  13. AutoHotKey:Shift+ijkl实现方向键
  14. reporting services报表部署错误:运行配置文件中指定的扩展时出现异常。 ---> 超过了最大请求长度。
  15. OpenLayers加载天地图
  16. 问题解决:“nginx: [emerg] unknown directive “ “ in /etc/nginx/conf.d/XXX.conf:122”
  17. kinect深度距离误差_TOF相机深度矫正基于Kinect v2
  18. 【python实战】不玩微博,一封邮件就能知道实时热榜,天秀吃瓜
  19. 第4章 Linux下的C语言开发基础
  20. Vue组件库实现按需加载功能

热门文章

  1. MySQL的优化(大纲)
  2. IIS 之 HTTP错误 404.17 - Not Found(请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。)...
  3. NR 5G 网络功能之AMF
  4. JMJS系统总结系列----Jquery分页扩展库(五)
  5. nosql ( redis 跟 memcache )的区别
  6. Linux shell编程学习笔记-----第十四章
  7. 6、Hive的特殊分隔符处理
  8. linux的mtd架构分析【转】
  9. 组件的高可用性 High Availability
  10. linux下IO口模拟I2C的一些总结