编程设置ObjectDataSource的参数值

合集下载

scott笔记

scott笔记

重要属性:RowState:来决定这些DataRow是否被改动过,或是新记录,或是被删除的记录,然后为每个记录发出合适的数据库命令。

InsertCommand:向数据库发出对应的INSERT命令。

UpdateCommand:向数据库发出对应的UPDATE命令。

DeleteCommand:向数据库发出对应的DELETE命令。

ExecuteMode:查询的ExecuteMode。

Read:返回数据行、Scalar:返回单个值、NonQuery:返回一个整数,指受影响的记录数。

重要方法:为GridView指定数据源:GridView1.DataSource = productsAdapter.GetProducts();为GridView 绑定数据:GridView1.DataBind();1.要访问弱类型DataTable中的一个特定字段,我们需要用这样的句法:DataTable.Rows[index] ["columnName"]。

这个例子中的DataTable的弱类型性质表现在于,我们需要通过一个字符串或序号索引来访问字段名称。

而在另一个方面,一个强类型的DataTable,它的所有的字段都是通过属性的形式来实现的,访问的编码就会象这样:DataTable.Rows[index].columnName。

2.强类型的DataSet 起了强类型对象的集合的作用,它由强类型DataTable实例组成,每个强类型DataTable又进而由强类型的DataRow实例组成。

强类型的DataTable并不包括如何访问对应底层的数据表的任何信息。

要获取用来填充DataTable的数据,我们使用TableAdapter类,它提供了数据访问层的功能。

3.填充DataTable –这个做法会生成一个方法,该方法接受一个DataTable的参数,基于查询的结果填充这个DataTable。

譬如,的DataAdapter类就是在它的Fill()方法中实现这个模式的。

SpringBoot配置属性之DataSource

SpringBoot配置属性之DataSource

SpringBoot配置属性之DataSource SpringBoot配置属性系列另外附上个⼈关于springboot的⼀些⽂章另外附上个⼈关于springboot的⼀些⽂章datasourcespring.dao.exceptiontranslation.enabled是否开启PersistenceExceptionTranslationPostProcessor,默认为true spring.datasource.abandon-when-percentage-full设定超时被废弃的连接占到多少⽐例时要被关闭或上报spring.datasource.allow-pool-suspension使⽤Hikari pool时,是否允许连接池暂停,默认为: falsespring.datasource.alternate-username-allowed是否允许替代的⽤户名.spring.datasource.auto-commit指定updates是否⾃动提交.spring.datasource.catalog指定默认的catalog.mit-on-return设置当连接被归还时,是否要提交所有还未完成的事务spring.datasource.connection-init-sql指定连接被创建,再被添加到连接池之前执⾏的sql.spring.datasource.connection-init-sqls使⽤DBCP connection pool时,指定初始化时要执⾏的sqlspring.datasource.connection-properties.[key]在使⽤DBCP connection pool时指定要配置的属性spring.datasource.connection-test-query指定校验连接合法性执⾏的sql语句spring.datasource.connection-timeout指定连接的超时时间,毫秒单位.spring.datasource.continue-on-error在初始化数据库时,遇到错误是否继续,默认falsespring.datasource.data指定Data (DML)脚本spring.datasource.data-source-class-name指定数据源的全限定名.spring.datasource.data-source-jndi指定jndi的地址spring.datasource.data-source-properties.[key]使⽤Hikari connection pool时,指定要设置的属性spring.datasource.db-properties使⽤Tomcat connection pool,指定要设置的属性spring.datasource.default-auto-commit是否⾃动提交.spring.datasource.default-catalog指定连接默认的catalog.spring.datasource.default-read-only是否设置默认连接只读.spring.datasource.default-transaction-isolation指定连接的事务的默认隔离级别.spring.datasource.driver-class-name指定driver的类名,默认从jdbc url中⾃动探测.spring.datasource.fair-queue是否采⽤FIFO返回连接.spring.datasource.health-check-properties.[key]使⽤Hikari connection pool时,在⼼跳检查时传递的属性spring.datasource.idle-timeout指定连接多久没被使⽤时,被设置为空闲,默认为10msspring.datasource.ignore-exception-on-pre-load当初始化连接池时,是否忽略异常.spring.datasource.init-sql当连接创建时,执⾏的sqlspring.datasource.initial-size指定启动连接池时,初始建⽴的连接数量spring.datasource.initialization-fail-fast当创建连接池时,没法创建指定最⼩连接数量是否抛异常spring.datasource.initialize指定初始化数据源,是否⽤data.sql来初始化,默认: truespring.datasource.isolate-internal-queries指定内部查询是否要被隔离,默认为falsespring.datasource.jdbc-interceptors使⽤Tomcat connection pool时,指定jdbc拦截器,分号分隔spring.datasource.jdbc-url指定JDBC URL.spring.datasource.jmx-enabled是否开启JMX,默认为: falsespring.datasource.jndi-name指定jndi的名称.spring.datasource.leak-detection-threshold使⽤Hikari connection pool时,多少毫秒检测⼀次连接泄露. spring.datasource.log-abandoned使⽤DBCP connection pool,是否追踪废弃statement或连接,默认为: false spring.datasource.log-validation-errors当使⽤Tomcat connection pool是否打印校验错误.spring.datasource.login-timeout指定连接数据库的超时时间.spring.datasource.max-active指定连接池中最⼤的活跃连接数.spring.datasource.max-age指定连接池中连接的最⼤年龄spring.datasource.max-idle指定连接池最⼤的空闲连接数量.spring.datasource.max-lifetime指定连接池中连接的最⼤⽣存时间,毫秒单位.spring.datasource.max-open-prepared-statements指定最⼤的打开的prepared statements数量.spring.datasource.max-wait指定连接池等待连接返回的最⼤等待时间,毫秒单位.spring.datasource.maximum-pool-size指定连接池最⼤的连接数,包括使⽤中的和空闲的连接.spring.datasource.min-evictable-idle-time-millis指定⼀个空闲连接最少空闲多久后可被清除.spring.datasource.min-idle指定必须保持连接的最⼩值(For DBCP and Tomcat connection pools)spring.datasource.minimum-idle指定连接维护的最⼩空闲连接数,当使⽤HikariCP时指定.指定数据源名.spring.datasource.num-tests-per-eviction-run指定运⾏每个idle object evictor线程时的对象数量spring.datasource.password指定数据库密码.spring.datasource.platform指定schema要使⽤的Platform(schema-${platform}.sql),默认为: allspring.datasource.pool-name指定连接池名字.spring.datasource.pool-prepared-statements指定是否池化statements.spring.datasource.propagate-interrupt-state在等待连接时,如果线程被中断,是否传播中断状态.spring.datasource.read-only当使⽤Hikari connection pool时,是否标记数据源只读spring.datasource.register-mbeans指定Hikari connection pool是否注册JMX MBeans.spring.datasource.remove-abandoned指定当连接超过废弃超时时间时,是否⽴刻删除该连接.spring.datasource.remove-abandoned-timeout指定连接应该被废弃的时间.spring.datasource.rollback-on-return在归还连接时,是否回滚等待中的事务.spring.datasource.schema指定Schema (DDL)脚本.spring.datasource.separator指定初始化脚本的语句分隔符,默认: ;spring.datasource.sql-script-encoding指定SQL scripts编码.spring.datasource.suspect-timeout指定打印废弃连接前的超时时间.spring.datasource.test-on-borrow当从连接池借⽤连接时,是否测试该连接.spring.datasource.test-on-connect创建时,是否测试连接spring.datasource.test-on-return在连接归还到连接池时是否测试该连接.spring.datasource.test-while-idle当连接空闲时,是否执⾏连接测试.spring.datasource.time-between-eviction-runs-millis指定空闲连接检查、废弃连接清理、空闲连接池⼤⼩调整之间的操作时间间隔spring.datasource.transaction-isolation指定事务隔离级别,使⽤Hikari connection pool时指定spring.datasource.url指定JDBC URL.e-disposable-connection-facade是否对连接进⾏包装,防⽌连接关闭之后被使⽤.e-equals⽐较⽅法名时是否使⽤String.equals()替换==.e-lock是否对连接操作加锁ername指定数据库名.spring.datasource.validation-interval指定多少ms执⾏⼀次连接校验.spring.datasource.validation-query指定获取连接时连接校验的sql查询语句.spring.datasource.validation-query-timeout指定连接校验查询的超时时间.spring.datasource.validation-timeout设定连接校验的超时时间,当使⽤Hikari connection pool时指定spring.datasource.validator-class-name⽤来测试查询的validator全限定名.spring.datasource.xa.data-source-class-name指定数据源的全限定名.spring.datasource.xa.properties指定传递给XA data source的属性JPAspring.jpa.database指定⽬标数据库.spring.jpa.database-platform指定⽬标数据库的类型.spring.jpa.generate-ddl是否在启动时初始化schema,默认为falsespring.jpa.hibernate.ddl-auto指定DDL mode (none, validate, update, create, create-drop). 当使⽤内嵌数据库时,默认是create-drop,否则为none.spring.jpa.hibernate.naming-strategy指定命名策略.spring.jpa.open-in-view是否注册OpenEntityManagerInViewInterceptor,绑定JPA EntityManager到请求线程中,默认为: truespring.jpa.properties添加额外的属性到JPA provider.spring.jpa.show-sql是否开启sql的log,默认为: falsejooqspring.jooq.sql-dialect指定JOOQ使⽤的SQLDialect,⽐如POSTGRES.h2spring.h2.console.enabled是否开启控制台,默认为falsespring.h2.console.path指定控制台路径,默认为: /h2-consoleJTAspring.jta.allow-multiple-lrc是否允许 multiple LRC,默认为: falsespring.jta.asynchronous2-pc指定两阶段提交是否可以异步,默认为: falsespring.jta.background-recovery-interval指定多少分钟跑⼀次recovery process,默认为: 1spring.jta.background-recovery-interval-seconds指定多久跑⼀次recovery process,默认: 60spring.jta.current-node-only-recovery是否过滤掉其他⾮本JVM的recovery,默认为: truespring.jta.debug-zero-resource-transaction是否追踪没有使⽤指定资源的事务,默认为: falsespring.jta.default-transaction-timeout设定默认的事务超时时间,默认为60spring.jta.disable-jmx是否禁⽤jmx,默认为falsespring.jta.enabled是否开启JTA support,默认为: truespring.jta.exception-analyzer设置指定的异常分析类spring.jta.filter-log-status使⽤Bitronix Transaction Manager时,是否写mandatory logs,开启的话,可以节省磁盘空间,但是调试会复杂写,默认为falsespring.jta.force-batching-enabled使⽤Bitronix Transaction Manager时,是否批量写磁盘,默认为true.spring.jta.forced-write-enabled使⽤Bitronix Transaction Manager时,是否强制写⽇志到磁盘,默认为truespring.jta.graceful-shutdown-interval当使⽤Bitronix Transaction Manager,指定shutdown时等待事务结束的时间,超过则中断,默认为60spring.jta.jndi-transaction-synchronization-registry-name当使⽤Bitronix Transaction Manager时,在JNDI下得事务同步registry,默认为: java:comp/TransactionSynchronizationRegistryspring.jta.jndi-user-transaction-name指定在JNDI使⽤Bitronix Transaction Manager的名称,默认:java:comp/UserTransactionspring.jta.journal当使⽤Bitronix Transaction Manager,指定The journal是否disk还是null还是⼀个类的全限定名,默认diskspring.jta.log-dirTransaction logs directory.spring.jta.log-part1-filename指定The journal fragment⽂件1的名字,默认: btm1.tlogspring.jta.log-part2-filename指定The journal fragment⽂件2的名字,默认: btm2.tlogspring.jta.max-log-size-in-mb指定journal fragments⼤⼩的最⼤值. 默认: 2Mspring.jta.resource-configuration-filename指定Bitronix Transaction Manager配置⽂件名.spring.jta.server-id指定Bitronix Transaction Manager实例的id.spring.jta.skip-corrupted-logs是否忽略corrupted log files⽂件,默认为false.spring.jta.transaction-manager-id指定Transaction manager的唯⼀标识.spring.jta.warn-about-zero-resource-transaction当使⽤Bitronix Transaction Manager时,是否对没有使⽤指定资源的事务进⾏警告,默认为: true。

hikaridatasource参数

hikaridatasource参数

hikaridatasource参数HikariDataSource参数是指在使用HikariCP连接池时所需配置的参数。

HikariCP是一种高性能的JDBC连接池,可以帮助程序员优化应用程序的性能,减少数据库连接的开销。

HikariDataSource是HikariCP连接池的数据源,用于管理连接池。

以下是一些常用的HikariDataSource参数:1. jdbcUrl:数据库的连接字符串,如'jdbc:mysql://localhost:3306/test'。

2. username:数据库用户名。

3. password:数据库密码。

4. driverClassName:数据库驱动类名。

5. connectionTimeout:连接超时时间,默认30秒。

6. idleTimeout:连接空闲超时时间,默认10分钟。

7. maxLifetime:连接最大生命周期,默认30分钟。

8. maximumPoolSize:连接池最大连接数,默认10。

9. minimumIdle:连接池最小空闲连接数,默认10。

10. poolName:连接池名称,默认'HikariCP'。

以上这些参数可以在配置文件中进行设置,例如:```spring.datasource.hikari.jdbcUrl=jdbc:mysql://localhost:330 6/testername=rootspring.datasource.hikari.password=123456spring.datasource.hikari.driverClassName=com.mysql.cj.jdbc. Driverspring.datasource.hikari.connectionTimeout=30000spring.datasource.hikari.idleTimeout=600000spring.datasource.hikari.maxLifetime=1800000spring.datasource.hikari.maximumPoolSize=100spring.datasource.hikari.minimumIdle=10spring.datasource.hikari.poolName=myHikariCP```注意:不同的框架或使用方式可能会有一些差异,上述配置仅供参考。

六:编程设置ObjectDataSource的参数值

六:编程设置ObjectDataSource的参数值

作者:heker2007 字体:[增加减小] 类型:转载时间:2016-04-29我要评论本文主要介绍在ObjectDataSource控件的Selecting事件中,设置InputParameters参数,配合业务层的查询方法,以达到查询不同数据的目的。

导言正如我们在上一节的教程中所看到的,有很多可供选择的方式把参数的值传递到Ojbec tDataSource的方法里。

假如参数值是采用硬编码方式,来源于页面上的一个Web控件,又或者其他可被数据源Parameter对象读取的源,那么这个值可以绑定到输入参数而不需要写一行的代码。

然而有些时候,参数值来自某些在数据源的内置Parameter对象里还没有计算出来的源。

假如我们的站点支持我们的考虑那么我们也许希望参数基于当前登录用户。

又或者我们在参数传送到ObjectDataSource的隐含对象的方法前做一些客户化定制。

无论什么时候调用ObjectDataSource的Seelect方法,它都会首先触发它的Selecting事件,然后才调用ObjectDataSource的隐含对象的方法,完成后则激发ObjectDataSource ObjectDataSource的Selected 事件(图一说明这些事件的顺序)。

可以在Selecting事件的事件委托中对参数的值进行设置或更改。

图1: ObjectDataSource的Selected 和Selecting 事件分别在调用它的隐含对象的方法之前和之后触发这一节里我们将看看添加一个接受一个输入参数方法到DAL和BLL层,参数名为Mont h,int类型,方法返回一个EmployeesDataTable对象,里边包含的是雇佣周年纪念都指定月份的雇员。

我们的例子将编码设置为基于当前月份,显示一个“本月雇用周年纪念员工”列表。

让我们开始吧!第一步: 添加一个方法到EmployeesTableAdapter在我们的第一个例子里,我们需要添加一个方法来获取那些雇用日期(HireDate)在某个指定月份的员工。

cmbbox中方datasource的用法

cmbbox中方datasource的用法

cmbbox中方datasource的用法在使用C#开发Windows桌面应用程序时,我们经常需要在ComboBox控件中显示数据列表。

ComboBox控件可以通过两种方式来显示数据列表,一种是手动添加,另一种是使用DataSource属性绑定数据源。

在使用DataSource属性绑定数据源时,我们需要先创建一个数据源对象。

数据源可以是数组、集合、DataTable、DataSet等。

以DataTable为例,我们可以使用以下代码创建一个DataTable对象:DataTable dt = new DataTable();dt.Columns.Add('ID', typeof(int));dt.Columns.Add('Name', typeof(string));dt.Rows.Add(1, '张三');dt.Rows.Add(2, '李四');dt.Rows.Add(3, '王五');然后,我们可以将这个DataTable对象设置为ComboBox的DataSource属性:comboBox1.DataSource = dt;接着,我们需要指定ComboBox控件显示哪个字段。

比如,我们可以让ComboBox显示DataTable中的Name字段:comboBox1.DisplayMember = 'Name';最后,我们还需要指定ComboBox控件选中项的值是哪个字段。

比如,我们可以让ComboBox选中项的值为DataTable中的ID字段:comboBox1.ValueMember = 'ID';这样,ComboBox控件就可以显示DataTable中的数据了。

当用户选择某个选项时,ComboBox控件会返回该选项的ID值。

除了DataTable,我们还可以使用其他类型的数据源对象。

cmbbox中方datasource的用法

cmbbox中方datasource的用法

cmbbox中方datasource的用法在C#中,ComboBox控件是用来展示列表内容的控件之一。

它可以在下拉框中展示多个选项供用户选择。

在使用ComboBox控件时,我们经常会用到DataSource属性,这个属性可以让我们方便的绑定数据源。

DataSource属性是ComboBox控件中最常用的属性之一,它用于绑定数据源。

数据源可以是一个数据表、一个数据集、一个ArrayList 甚至是一个简单的数组。

我们可以通过DataSource属性将ComboBox 与数据源进行绑定,ComboBox就会自动显示数据源中的数据。

使用DataSource属性时,我们需要注意以下几点:1. 数据源必须是可枚举的。

2. 数据源必须实现IEnumerable接口。

3. 数据源必须是可序列化的。

4. 数据源必须包含一个可以用来展示的属性。

如果我们想向ComboBox中添加自定义的数据源,我们可以通过继承BindingList<T>类来实现。

BindingList<T>是一个泛型类,我们可以通过指定类型来创建自己的数据源。

使用ComboBox控件时,我们还可以通过绑定SelectedValue属性来获取用户选择的值。

SelectedValue属性会返回ComboBox中选项的值,而不是文本。

如果我们想获取用户选择的文本,可以使用SelectedText属性。

总之,使用ComboBox控件中的DataSource属性,我们可以很方便地绑定数据源来展示选项,并且通过SelectedValue和SelectedText属性来获取用户选择的值和文本。

basicdatasourcefactory 参数

basicdatasourcefactory 参数

basicdatasourcefactory 参数BasicDataSourceFactory 是一个用于创建BasicDataSource 类实例的工厂类。

它提供了以下参数:- driverClassName:JDBC 驱动程序的完全限定类名。

- url:JDBC URL。

- username:数据库登录用户名。

- password:数据库登录密码。

- defaultAutoCommit:默认情况下是否自动提交事务。

- defaultReadOnly:默认情况下连接是否为只读。

- defaultTransactionIsolation:默认情况下事务的隔离级别。

- maxTotal:连接池最大连接数。

- maxIdle:连接池最大空闲连接数。

- minIdle:连接池最小空闲连接数。

- initialSize:初始化连接池时创建的连接数。

- maxWaitMillis:获取连接的最大等待时间(单位为毫秒)。

- validationQuery:用于测试连接是否可用的SQL 查询语句。

- testOnBorrow:在从池中获取连接时是否测试连接。

- testWhileIdle:在空闲时是否测试连接。

- timeBetweenEvictionRunsMillis:池中连接空闲时间的最小值(单位为毫秒)。

在此时间间隔内,连接池会检查并驱逐已空闲时间超过此值的连接。

- numTestsPerEvictionRun:每次检查中检查的连接数。

- minEvictableIdleTimeMillis:连接在池中最小空闲时间(单位为毫秒)。

连接池会在此时间间隔后驱逐此连接。

- testOnReturn:连接返回池时是否测试连接。

- jdbcInterceptors:要应用于所有池中连接的拦截器。

dynamicdatasource的connecttimeout参数

dynamicdatasource的connecttimeout参数

dynamicdatasource的connecttimeout参数一、动态数据源概述动态数据源是一种能够根据业务需求动态调整数据来源的数据库技术。

在现代软件开发中,动态数据源的应用越来越广泛,为开发人员提供了极大的便利。

connecttimeout参数是动态数据源的一个重要配置项,它决定了数据源连接的超时时间。

二、connecttimeout参数介绍1.作用与意义connecttimeout参数主要用于设置数据源连接的超时时间,一旦连接超时,系统会自动断开连接。

这个参数在实际应用中具有重要意义,因为它可以确保数据源在连接失败时能够及时进行重试,提高系统的稳定性和可用性。

2.配置方法connecttimeout参数的配置方法如下:```dynamicdatasource.connecttimeout = xx;```其中,xx表示超时时间,单位为毫秒。

开发者可以根据实际需求调整这个值,使其满足业务场景的要求。

3.常见问题与解决方案- 问题一:连接超时导致的系统崩溃。

解决方案:检查数据源连接参数,如IP地址、端口号、用户名、密码等,确保配置正确;调整connecttimeout值,使其在合理范围内;优化数据源连接逻辑,减少不必要的连接重试。

- 问题二:连接超时影响系统性能。

解决方案:提高数据源的处理能力,如增加硬件资源、优化数据库查询语句等;调整connecttimeout值,使其在合理范围内;分析系统瓶颈,针对性地进行优化。

三、总结与建议connecttimeout参数对于动态数据源的稳定性和性能具有重要作用。

开发者应充分了解其意义和配置方法,并根据实际需求进行合理调整。

同时,要关注连接超时问题,及时分析原因并采取相应措施,以确保数据源的高效运行。

jdbctemplate queryforobject 传参

jdbctemplate queryforobject 传参

Jdbctemplate是Spring框架中的一个轻量级数据库操作模板类,它简化了JDBC操作,提供了更加友好的编程模型。

queryForObject方法是Jdbctemplate的一个非常重要的方法,它用于从数据库中查询一个对象。

该方法的声明如下:public <T> T queryForObject(String sql, Object[] args, Class<T> targetType) throws DataAccessException;其中:- sql 是要执行的查询语句。

- args 是查询语句中需要传递的参数。

- targetType 是要查询出来的对象的类型。

下面是queryForObject方法的一个简单示例:public class UserDao {private JdbcTemplate jdbcTemplate;public UserDao(DataSource dataSource) {this.jdbcTemplate = new JdbcTemplate(dataSource);}public User findById(Integer id) {return jdbcTemplate.queryForObject("SELECT * FROM users WHERE id =?",new Object[]{id},User.class);}}在上面的示例中,我们定义了一个名为UserDao的类,它使用JdbcTemplate来执行数据库操作。

findById方法用于从users表中查找id为指定值的用户。

注意,在上面的示例中,我们使用了问号(?)作为占位符来替换查询语句中的参数。

在调用queryForObject方法时,我们需要将参数值传入args数组中。

例如,如果我们想要查找id为1的用户,我们可以调用findById方法如下:UserDao userDao = new UserDao(dataSource);User user = userDao.findById(1);需要注意的是,queryForObject方法返回的是一个对象,而不是一个结果集。

NET基于三层的ObjectDatasource和基于两层的SqIDataSource的数据查询和删除的性能对比研究

NET基于三层的ObjectDatasource和基于两层的SqIDataSource的数据查询和删除的性能对比研究


果 返回到各 数据绑 定控件 中 。 2 、如果基 础业 务对 象返 回的对 象是存 放 资源 或者 能在 多个 请求 之 间保 持 共 享状 态 ,那 么O b j e c t D a t a S o u r c e 控 件 就可 以缓 存 它 。D a t a R e a d e r 对 象 由于不 符合 上 述条 件 , 因而O b j e c t D a t a s o u r c e 控 件 不能 缓存 D a t a R e a d e r 对象 。 3 、如果想从O b. j e c t D a t a S 0 u r c e 控 件 的 查 询 结 果 中 再 筛 选 一 些 数 据 , 也 就 是 只 想 得 到 与 指 定 的搜 索 条 件 匹 配 的 数 据 ,但 又 不 想使 用 新 的选 择 条件 对 数据 源 进 行 重 新 查 询 , 那 么 由 源 数 据 对 象 返 回  ̄ J l O b j e c t D a t a S o u r c e 的对 象格 式 只 能 是 D a t a S e t 或D a t a T a b l e X  ̄ 象 ,筛 选 可 以通 过 设 置D a t a C o l u m n 类 的E x p r e s si o n 属 性 实
应用程 序层次 结构 的相关概 念 两 层 应用 程 序层 次 结构 是 指 应 用程 序 的表示 层 ( 如A S P . N E T 网页 )可 以与 其数 据 层 ( 如数据库、X M L 文 件 等 )直 接 进 行 通 信 。大 多数A S P . N E T 数据 源控件 都是 两层 应 用 程序层 次 结构 , 比如s q 1 D a t a s o u r c e ,它 的 两 层分 别 是 表示 层 和 数据 层 。两 层 应 用 程 序 层次 结 构 本身 有 很 多优 点 ,使 用 也 能 方 便 ,但 是 在 企业 级 的应 用 中, 实 际常 用 的 应 用程 序 设 计原 则 却 需要 将 表示 层 与 业 务 逻辑 相 分 离 ,所 以原有 的两 层应 用 程 序 层 次 结构 在 理 解和 设 计 上略 显 不 足 ,于 是 出现 了三层 应用程序 层 次结构 。 三 层 应 用 程 序 层 次 结 构 是 指 应 用 程序被 分成 了表示层 、中间层 ( 如 封 装 业 务 逻 辑 的 层 ) 、 数 据 层 , 三 个 层 协 同 工 作 , 来 完 成 应 用 程 序 的 功 能 , 比 如 O b J e c t D a t a S o u r c e , 它 可 用 作数 据 控 件 ( 如G r i d V i e w 控 件 ) 的数据 接 口,允 许 以 声 明方 式 将 数据 绑 定 到 由 自定 义业 务对 象 公 开 的 数 据 , 以 用 于 多层 W e b 应用 程 序 结 构 , 这 正 是 三 层 架 构 甚 至N 层 架 构 所 需要 的 。 中 间 层 是 由 于 应 用 程 序 在 设 计 的 时 候 ,业 务 逻辑 常常 不是 封 装 在表 示 层 中 , 而是 将 业 务逻 辑 从 表示 层 中分 离 出来 ,并 将 业 务 逻 辑封 装 在业 务 对 象 中 ,于 是这 些 业 务 对 象 在 表 示 层 和 数 据 层 之 间 形 成 一 层 , 即形 成 了 中间层 ,进 而生 成 了 一种 三 层应用程 序结 构…。 二 、0 b j e c t D a t a S o u r c e 的主要 功能 O b J e c t D a t a S o u r ce 控 件 的主 要 作 用 是将 表 示层 的数 据控 件 绑 定 到 中间层 的业 务对 象 , 即通 过 提供 一 种 将相 关 页 上 的数 据控 件绑 定到 中间层业务 对象的方法 , 为 三 层 应 用 程 序 结 构 提 供 支 持 。在 不 使 用 扩 展代 码 的情 况 下 ,O b j e c t D a t a S o u r c e 通 过 中 间 层 业 务 对 象 以 声 明 方 式 对 数 据 执 行 插 入 、 删 除 、 更 新 、 排 序 、 选 择 、 缓 存 、 分 页 和 筛 选 操 作 , 这 些 操 作 O b j e c t D a t a S o u r c e 是 使 用反 射 调用业 务 对 象 的方法 实现 的。 O b j e c t D a t a S o u r c e 控件 的主 要 功能 可 以概 括如 下 : 1 、O b j e c t D a t a S o u r c e 在 排 序 和 分 页 时 ,是 数 据绑 定 控件 ( 如G r i d V i e w )将 请 求 的 排序 和分 页 信 息 传 递到 O bj e c t D a t a — S o u r c e 的数据 对 象 ,然 后 由源 数据 对 象 或 数 据源 控 件对 数 据 进 行处 理 , 并将 处 理

setdatasource方法

setdatasource方法

setdatasource方法
setdatasource方法是一种用于设置数据源的方法。

它可以用于各种编程语言和平台,包括Java、C#、Python等。

通过该方法,开发者可以将数据源与应用程序或系统集成起来,以便进行数据操作和管理。

setdatasource方法通常需要传入一些参数,例如数据源的地址、用户名、密码等。

这些参数可以根据具体的数据源类型和配置进行设置。

在使用该方法之前,通常需要先创建一个数据源对象,并设置好相关属性和参数。

然后,通过调用setdatasource方法,将该数据源对象与应用程序或系统进行关联。

使用setdatasource方法可以带来多个好处。

首先,它可以使开发者更方便地进行数据操作和管理,避免了手动连接和断开数据源的繁琐工作。

其次,它可以提高数据操作的效率和稳定性,减少出错的风险。

最后,它可以使应用程序更加灵活和可扩展,可以随时更换、添加或删除不同类型的数据源。

总之,setdatasource方法是一种非常有用的数据源管理方法,可以为开发者提供更好的数据操作和管理体验。

通过深入了解该方法的使用和实现原理,开发者可以更好地利用数据资源,提高开发效率和数据处理能力。

- 1 -。

datasource参数

datasource参数

datasource参数在计算机科学领域中,数据源(datasource)是指提供数据的来源。

数据源可以是各种不同的形式,包括数据库、文件、网络等。

在软件开发中,datasource参数是指用于指定数据源的参数。

datasource参数在许多应用程序中都起着重要的作用。

它可以帮助程序连接到正确的数据源,并获取所需的数据。

通过使用datasource参数,开发人员可以轻松地切换不同的数据源,而无需修改大量的代码。

在数据库应用程序中,datasource参数通常用于指定数据库的连接信息。

它包括数据库的URL、用户名、密码等。

通过传递正确的datasource参数,应用程序可以连接到指定的数据库,并执行各种数据库操作,如查询、插入、更新等。

除了数据库,datasource参数还可以用于其他类型的数据源。

例如,在文件处理应用程序中,datasource参数可以指定要读取或写入的文件路径。

在网络应用程序中,datasource参数可以指定要访问的URL地址。

使用datasource参数的好处之一是提高了程序的灵活性和可维护性。

通过将数据源的连接信息与代码分离,开发人员可以更容易地修改或替换数据源,而无需对整个应用程序进行大规模的更改。

这对于需要在不同环境中部署应用程序的情况尤为重要,例如开发、测试和生产环境。

另一个好处是提高了应用程序的安全性。

通过将敏感的连接信息存储在外部配置文件中,并使用datasource参数引用这些信息,可以避免将敏感信息硬编码在代码中。

这样可以减少潜在的安全风险,并使应用程序更加安全可靠。

然而,使用datasource参数也存在一些挑战和注意事项。

首先,开发人员需要确保传递正确的参数值,以确保应用程序能够成功连接到数据源。

其次,datasource参数的格式和用法可能因不同的应用程序和框架而异。

因此,开发人员需要熟悉所使用的具体技术和工具的要求。

总之,datasource参数在软件开发中扮演着重要的角色。

oc 方法参数默认值

oc 方法参数默认值

oc 方法参数默认值在Objective-C中,方法参数的默认值是通过在方法声明中使用可选参数来实现的。

通过为参数提供一个默认值,我们可以在调用方法时省略该参数,而使用默认值。

在Objective-C中,我们可以在方法声明的括号中使用类似于函数声明中的`= value`的方式来为参数设置默认值。

例如,假设我们有一个方法返回两个数的和:```objective-c- (NSInteger)addNumber:(NSInteger)num1toNumber:(NSInteger)num2withDefaultValue:(NSInteger)defaultValue;```在这个方法中,我们有一个参数`defaultValue`,它有一个默认值。

如果在调用方法时省略了该参数,它将使用默认值。

如果提供了该参数的值,它将使用提供的值。

我们可以在方法的实现中使用条件语句来检查参数是否被提供,如果没有提供,则使用默认值。

例如:```objective-c- (NSInteger)addNumber:(NSInteger)num1toNumber:(NSInteger)num2withDefaultValue:(NSInteger)defaultValue {if (defaultValue != 0) {return num1 + num2 + defaultValue;} else {return num1 + num2;}}```在上面的实例中,如果`defaultValue`参数不为0,则将返回三个数的和(`num1 + num2 + defaultValue`),否则将返回两个数的和(`num1 + num2`)。

使用方法参数默认值可以使方法更加灵活,因为它允许我们在需要时提供参数,而在不需要时使用默认值。

这在一些情况下非常有用,例如当我们有一个可选的参数,它有一个常见的默认值,但是在某些情况下需要使用不同的值。

NET基于两层的SqlDataSource和基于三层的ObjectDataSource的数据插入和更

NET基于两层的SqlDataSource和基于三层的ObjectDataSource的数据插入和更

NET基于两层的SqlDataSource和基于三层的ObjectDataSource的数据插入和更新的性能对比研究【摘要】本文首先介绍了SqlDataSource和ObjectDataSource的相关层次结构及两个控件的主要用途,然后概述了SqlDataSource的主要功能,最后通过完成了SqlDataSource和ObjectDataSource的数据插入和更新的性能对比试验,通过实验对比两个控件的性能,并对试验结果进行分析,从而为研究人员和企业级的应用人员在项目开发中根据实际需要,选择最高效和最有用的控件时提供参考。

【关键词】SqlDataSource;ObjectDataSource;层次结构;表示层一、SqlDataSource控件和ObjectDataSource控件的相关层次结构两层应用程序层次结构是指应用程序的表示层(如ASP。

NET网页)可以与其数据层(如数据库、ML文件等)直接进行通信。

表示层用来把数据呈现给用户,主要处理界面元素;而数据层集中处理数据的插入、更新、存储、查询等功能。

大多数ASP。

NET数据源控件都是两层应用程序层次结构,比如SqlDataSource,它的两层分别是表示层和数据层。

两层应用程序层次结构本身有很多优点,使用也能方便,比如它降低了网络上的信息流量,也将服务器的一些工作压力转移给了客户端,但是缺点也很明显,主要表现为:第一,当系统因需求变化需要改变数据结构时,表示层往往要经过非常大的修改,此时系统越大,表示层的修改量就越大,即使一个表结构的微小变动也会导致表示层多个模块的修改。

第二,两层应用程序层次结构在分析设计阶段和代码编写阶段对每个开发人员的要求都非常高,系统的每个开发人员不但要熟练掌握编程语言和开发环境,而且还要对需要开发的系统有很深的了解。

第三,两层应用程序层次结构的数据层通常都是在一台服务器上,服务器的负荷还是比较重。

但是在企业级的应用中,实际常用的应用程序设计原则却需要将表示层与业务逻辑相分离,所以原有的两层应用程序层次结构在理解和设计上略显不足,于是出现了三层应用程序层次结构。

C#数据绑定控件中的DataSource属性浅谈

C#数据绑定控件中的DataSource属性浅谈

C#数据绑定控件中的DataSource属性浅谈使⽤该属性指定⽤来填充Repeater控件的数据源。

DataSource可以是任何System.Collections.IEnumerable对象,如⽤于访问数据库的System.Data.DataView、System.Collections.ArrayList、System.Collections.Hashtable、数组或IListSource对象有的时候,你在编程进⼊⼀定阶段,进⼀步提升很困难的境况之下,不妨回过头来看看基础的东西,或许你会有新的受益,或许能够真正的体会到孔夫⼦所谓的“温故⽽知新”的真正内涵。

常⽤的C#数据绑定控件有:Repeater、DataList、GridView、DetailsView等,在这⾥我拿Repeater来简单说明问题。

使⽤该属性指定⽤来填充Repeater控件的数据源。

DataSource可以是任何System.Collections.IEnumerable对象,如⽤于访问数据库的System.Data.DataView、System.Collections.ArrayList、System.Collections.Hashtable、数组或IListSource对象。

常⽤的数据源:⼀个DataTable⼀个DataView⼀个DataSet任何实现IListSource接⼝的组件任何实现IList接⼝的组件注意:若要绑定到对象的强类型数组,该对象类型必须包含公共属性。

下⾯通过⼏个简单的实例来介绍DataSource的具体应⽤。

<1>绑定DataTable,⼀般都是从数据库取出数据,然后直接进⾏绑定,具体的数据库操作的逻辑不再提供。

想必⼤家都已经⾮常熟悉。

绑定DataView与这个类似。

程序代码复制代码代码如下:privatevoidBindData(){//通过业务逻辑,直接调⽤数据库中的数据DataTablenTable=getTable();Repeater1.DataSource=nTable;Repeater1.DataBind();}HTML代码C#数据绑定控件程序代码复制代码代码如下:<asp:RepeaterIDasp:RepeaterID="Repeater1"runat="server"><HeaderTemplate><table><tr><thscopethscope="col">姓名th><th>年龄th><tr><HeaderTemplate><ItemTemplate><tr><td><%#Eval("Key")%><td><td><%#Eval("value")%><td><tr><ItemTemplate><FooterTemplate><table><FooterTemplate><asp:Repeater><2>绑定Array、ArrayList、List、⼀维数组之类,⾥⾯存储简单的数据。

一种在ObjectDataSource中使用自定义类参数的方法

一种在ObjectDataSource中使用自定义类参数的方法
实体类 的属 性分解 开后,不利 于表达业 务逻辑意义 ,代码可 读性变 差。
{ oj a ; b =v ̄e )
p bi My utmP a t ( J C s m aa t u l C s c o a mee H D ut P mee r r o r r o gn 1 i r ia )
:aeo gn1 bs(r ia) i { oj r ia.a e } b =o gn 1 l ; i V u ∥ Da S uc控 件 绑 定 时 自动 调用 ,更 新并 返 回 被 t o re a P a ee 象 的值 r am t r对
因此 ,我们使用 O jc t o re时,需要根据情况使 bet a uc Da S 用 自定义类对象做参数来在系统 的各个层次之 间传递数据 。
cne tC nrl ot 1 o t , o t nr ) x oc o { rtr au ; eunV le }
NE aa tr E a a ( TP rme 类 v l t ) nen l iul bet vlaeH  ̄C net rt e travr a ojcE a t( tIotx c i t u cnetC nrl ot 1 otx, o t nr ) oc o 。
p biMy utmP rme r { ul C s c o aa t } e0
U dtMe o pa e t d和 De tMe o h l e t d属性 的值 ,来指定对应的读 e h 取 、新增 、修改和删除操作的方法名。每一种数据访 问方法
/ / 传递参数名和参数值,调用 父类构造方法给参数 名赋值 ,并把参数值保存 ̄ oj Ub里
现 对 数 据 库 的访 问 , 别 设 置 其 S lc to 、net e o 、 分 eet h d Isr t d Me M h

dynamicdatasource的connecttimeout参数

dynamicdatasource的connecttimeout参数

dynamicdatasource的connecttimeout参数(实用版)目录1.动态数据源连接超时参数的概念2.connectTimeout 参数的作用3.connectTimeout 参数的设置方法4.connectTimeout 参数的实际应用案例5.connectTimeout 参数的优缺点正文一、动态数据源连接超时参数的概念动态数据源(Dynamic Data Source)是一种数据访问技术,可以在运行时动态地更改数据源的连接信息。

在 Java 中,动态数据源通常使用JDBC(Java Database Connectivity)技术实现。

而在使用动态数据源时,可能会遇到连接超时问题,这时候就需要使用 connectTimeout 参数进行设置。

二、connectTimeout 参数的作用connectTimeout 参数表示在连接数据源时,允许的最大等待时间。

当连接数据源的时间超过该参数设置的时间时,连接将会被中断,并抛出异常。

这样可以有效地避免因为长时间等待连接而导致的程序阻塞。

三、connectTimeout 参数的设置方法在 Java 中,可以通过以下方法设置 connectTimeout 参数:```java// 获取数据库连接池DataSource dataSource =...;// 设置 connectTimeout 参数dataSource.setConnectTimeout(5000); // 设置连接超时时间为 5 秒```四、connectTimeout 参数的实际应用案例假设有一个电子商务网站,用户在购物时需要查询库存信息。

由于库存信息存储在数据库中,因此需要连接数据库来获取数据。

如果数据库连接不稳定,可能会导致查询耗时较长,这时就可以通过设置connectTimeout 参数来避免长时间等待连接。

五、connectTimeout 参数的优缺点优点:1.可以避免因为长时间等待连接而导致的程序阻塞。

Spring中配置DataSource数据源的几种选择

Spring中配置DataSource数据源的几种选择

Spring中配置DataSource数据源的⼏种选择1. 从JNDI获得DataSource.2. 从第三⽅的连接池获得DataSource.3. 使⽤DriverManagerDataSource获得DataSource.⼀、从JNDI获得DataSourceSpringJNDI数据源配置信息:<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"><property name="jndiName"><value>java:comp/env/jcptDataSourceJNDI</value></property></bean>jcptDataSourceJNDI是tomcat或者其他应⽤服务器配置的JNDI.关于JNDI的配置(tomcat):修改tomcat⽬录conf/context.xml⽂件或server.xml⽂件:<Resource name="jcptDataSourceJNDI" auth="Container"type="javax.sql.DataSource"maxActive="100"maxIdle="30"maxWait="10"username="tysp"password="12345678"driverClassName="oracle.jdbc.driver.OracleDriver"url="jdbc:oracle:thin:@192.168.1.35:1521:orcl"/>在server.xml中加⼊<Resource>元素:<Resource>元素⽤来定义JNDI Resource。

Web程序设计沈士根版课后习题答案

Web程序设计沈士根版课后习题答案

Web考试复习资料第一章1.填空题(1).NET Framework主要包括公共语言运行库(CLR) 和类库(2)网站在编译时,首先将语言代码编译成 MSIL,微软中间语言(3)一台IIS Web服务器IP地址为211.78.60.19,网站端口为8000,则要访问Web应用程序User中Default.aspx的URL为 http://211.78.60.19:8000/Default.aspx(4)可以通过复制网站同步网站上的一个文件3.选择题(1)VSEW 2012不支持(A)A.JavaB.JavaScriptC.LINQD.Microsoft Ajax(2)下面(D)网站在建立时要求安装Microsoft FrontPage服务器扩展A.文件系统B.本地IISC.FTP站点D.远程站点(3)以下选项不属于编程语言的是(A)B.Visual BasicC.Visual C#D.Visual C++4.简答题(1)一个学校有多个分院,每个分院有各自的网站,如果提供一台WEB服务器,如何设置?答:每个分院设置各自的虚拟目录。

虚拟目录是服务器硬盘上通常不再主目录下的文件夹的一个好记名称(别名),使用别名可以发布多个文件夹下的内容以供所有用户访问,并能单独控制每个虚拟目录的读写权限。

(6)静态网页和动态网页的区别?答:静态页面是不能随时改动的,静态是一次性写好放在服务器上进行浏览的,如果想改动,必须在页面上修改,然后再上传服务器覆盖原来的页面,这样才能更新信息,比较麻烦,使用者不能随时修改。

动态页面是可以随时改变内容的,有前后台之分,管理员可以在后台随时更新网站的内容,前台页面的内容也会随之更新第二章1.填空题(1)VSEW 2012默认建立的XHTML文件类型是 XHTML5(2)利用XHTML建立一个链接到jxst@邮箱的元素是<a href=”mailto:jxst@”>邮箱</a>(3)页面中的空格用 &nbsp表示(4)存放Web窗体页C#代码的模型有单文件页模型和代码隐藏页面模型(5)实现页面3秒自动刷新一次的元素是 <meta http-equiv="refresh" content="3">(6)在单文件页模型中,C#代码必须包含于<script>…</script>之间(7)代码隐藏页模型通过 CodeFile属性和 Inherits属性将aspx文件和对应的.aspx文件联系起来(8)外部样式表通过 <link> 元素链接到页面(9)XML主要用于处理与表达(跨平台交换) 数据(10)Global.asax文件用于包含响应用程序级别和会话级别事件的代码3.选择题(1)CSS选择器不包括(D)A.元素选择器B.属性选择器C.id选择器D.文件选择器(2)下面(B)是静态页面文件的扩展名A..aspB..htmlC..aspxD..jsp(3)App_Code文件夹用来存储(C)A.数据库文件B.共享文件C.代码文件D.主题文件(4) Web.config文件不能用于(A)A.Application事件处理代码的定义B.数据库连接字符串的定义C.对文件夹的访问授权D.基于角色的安全性控制4.简答题(5)简述Web.config文件特点及作用答:此文件是一个基于 XML 的配置文件。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

编程设置ObjectDataSource的参数值
导言
正如我们在上一节的教程中所看到的,有很多可供选择的方式把参数的值传递到OjbectDataSource的方法里。

假如参数值是采用硬编码方式,来源于页面上的一个Web 控件,又或者其他可被数据源Parameter对象读取的源,那么这个值可以绑定到输入参数而不需要写一行的代码。

然而有些时候,参数值来自某些在数据源的内置Parameter对象里还没有计算出来的源。

假如我们的站点支持我们的考虑那么我们也许希望参数基于当前登录用户。

又或者我们在参数传送到ObjectDataSource的隐含对象的方法前做一些客户化定制。

无论什么时候调用ObjectDataSource的Seelect方法,它都会首先触发它的Selecting 事件,然后才调用ObjectDataSource的隐含对象的方法,完成后则激发ObjectDataSource ObjectDataSource的Selected事件(图一说明这些事件的顺序)。

可以在Selecting事件的事件委托中对参数的值进行设置或更改。

图1: ObjectDataSource的Selected 和Selecting 事件分别在调用它的隐
含对象的方法之前和之后触发
这一节里我们将看看添加一个接受一个输入参数方法到DAL和BLL层,参数名为Month,int类型,方法返回一个EmployeesDataTable对象,里边包含的是雇佣周年纪念都指定月份的雇员。

我们的例子将编码设置为基于当前月份,显示一个“本月雇用周年纪念员工”列表。

让我们开始吧!
第一步: 添加一个方法到EmployeesTableAdapter
在我们的第一个例子里,我们需要添加一个方法来获取那些雇用日期(HireDate)在某个指定月份的员工。

在我们的程序架构下为了提供这个功能,我们首先需要在通过特定SQL 语句映射出来的EmployeesTableAdapter中创建一个方法。

为了实现这一点,首先打开Northwind类型化数据集,在EmployeesTableAdapter标签上右键选择“添加查询”。

图2: 在EmployeesTableAdapter里添加一个查询
选择返回一个或多个行和列的SQL语句。

当到达指定SELECT语句窗口时,EmployeesTableAdapter已经装载了默认的SELECT语句。

简单地,添加一个WHERE 子句:WHERE DATEPART(m, HireDate) = @Month 。

其中DATEPART是T-SQL里的一个函数,用作返回日期类型的一部分;在这里,我们使用DATEPART函数返回雇用日期(HireDate)列的月份部分。

图3: 仅返回HireDate 列的值小于等于参数@HiredBeforeDate的行
最后,分别把默认的方法名FillBy和GetDataBy更改为FillByHiredDateMonth和GetEmployeesByHiredDateMonth 。

图4: 选择比FillBy和GetDataBy更恰当的方法名称
点击“完成”结束向导并返回到数据集的设计界面。

这时候EmployeesTableAdapter会包含一套新的方法来获取指定月份雇用的员工。

图5: 新的方法出现在数据集的设计界面
第二步: 在业务逻辑层添加方法GetEmployeesByHiredDateMonth(month)
因为我们的程序架构使用了单独的一层来处理业务逻辑和数据逻辑,我们需要在BLL里增加一个方法,该方法调用DAL的方法获取指定月份里雇用的员工。

打开文件EmployeesBLL.cs并添加下面这个方法:
[ponentModel.DataObjectMethodAttribute(ponentMo del.DataObjectMethodType.Select, false)]
public Northwind.EmployeesDataTable GetEmployeesByHiredDateMonth(int month)
{
return Adapter.GetEmployeesByHiredDateMonth(month);
}
和此类里的其他方法一样,GetEmployeesByHiredDateMonth(month)仅仅是简单地调用DAL并返回结果。

第三步: 显示雇用周年纪念日在本月份的员工
最后一部我们举例说明如何显示雇用周年纪念在本月份的员工。

首先,添加一个GridView 控件到页面ProgrammaticParams.aspx,该页面在文件夹BasicReporting里。

添加一个新的ObjectDataSource控件作为它的数据源。

配置ObjectDataSource使用类EmployeesBLL并指定SelectMethod属性为GetEmployeesByHiredDateMonth(month)。

图6: 使用EmployeesBLL 类
图7: 选择GetEmployeesByHiredDateMonth(month)方法
最后一屏要求我们给month参数提供参数源。

既然我们将编码设置这个值,就让参数源维持它的默认选项None,点击“完成”。

图8: 让参数源设置为None
这将在ObjectDataSource的SelectParameters集合里创建一个未指定参数值的Parameter对象。

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" OldValuesParameterFormatString="original_{0}"
SelectMethod="GetEmployeesByHiredDateMonth"
TypeName="EmployeesBLL">
<SelectParameters>
<asp:Parameter Name="month" Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
要编码设置这个参数值,我们需要给ObjectDataSource的Selecting事件添加一个事件委托。

为了实现这一点,到设计视图里在ObjectDataSource上双击。

另一种方式是选中ObjectDataSource在属性窗口里点击黄色闪电小图标,然后,直接在Selecting这一栏里双击或者输入一个你要使用的事件委托的名称。

图9:点击属性窗口里的闪电图标列出Web控件的所有事件
两种途径都可以在页面的代码隐藏类里增加一个对ObjectDataSource的Selecting事件的事件委托。

在这个事件委托里,我们可以通过使用
e.InputParameters[parameterName]读取参数的值,其中parameterName的值是<asp:Parameter>标签里的属性Name的值(InputParameters也可以按照索引访问,用e.InputParameters[index])。

为了把month参数设置为当前月份,需要在Selecting 事件委托里加入如下代码:
protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
{
e.InputParameters["month"] = DateTime.Now.Month;
}
当通过浏览器访问该页面,我们可以看到只有一个员工是在当前月份(三月)雇用的:Laura Callahan,他从1994年3月开始雇用。

图10: 雇用周年纪念日在本月份的员工被显示出来了
总结
虽然可以用特定的方式声明ObjectDataSource的参数值而不需要写代码,编程设置参数值同样很容易。

我们需要做的仅仅是给ObjectDataSource的Selecting事件增加一个事件委托,它在调用隐含对象的方式前触发,并且通过InputParameters集合手工设置一个或多个参数值。

本节结束基本这一章。

下一节我们开始主从数据一章,这一章里我们将着眼于允许访问者筛选数据和主从数据处理的技巧。

祝编程快乐!
作者简介
Scott Mitchell,著有六本ASP/方面的书,是的创始人,自1998年以来一直应用微软Web技术。

Scott是个独立的技术咨询顾问,培训师,作家,最近完成了将由Sams出版社出版的新作,24小时内精通 2.0。

他的联系电邮为mitchell@,也可以通过他的博客
与他联系。

相关文档
最新文档