- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(EnterpriseLibrary)Oracle应用【DOC精选】
(Enterprise Library)Oracle应用SQL Server的使用者来说,只要把一个int型字段设置成“自增”就可以了。但是Oracle没有“自增”字段,这篇文章谈谈Oracle实现字段自增长并用C#调用微软企业库来访问的运用。
一.建表
建立一个测试用的表Test结构如下
列名 类型 是否可为空 说明 ID NUMBER N 实现自增字段 A NUMBER Y 测试字段1 B VARCHAR2(50) Y 测试字段2 接下来我们要实现列ID的自增,并用企业库调用。
二.建立序列
建立一个名称为Test_SQL的序列,使用PL/SQL查看序列的属性如下:
SEQUENCE_OWNER ZHYUANSAN SEQUENCE_NAME TEST_SQL MIN_VALUE 1 MAX_VALUE 1E27 INCREMENT_BY 1 CYCLE_FLAG N ORDER_FLAG N CACHE_SIZE 20 三.建立触发器
建立触发器代码如下:
create or replace trigger Test_INSERT_trigger
before insert on Test
for each row
begin
select Test_SQL.nextval into :new.ID from dual;
end ;
四.使用企业库插入数据
这时,我们可以使用PL/SQL插入数据:
insert into test values(0,23,’bbb’);
这里虽然第一个字段插入的数据是0,但是触发器自动会给它赋自增字段的值。
1.企业库配置文件
使用微软的企业库,连接数据库配置文件这样写:
? configSections
??? section name=dataConfiguration type=Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data,Version= 2.0.0.0,Culture=neutral,PublicKeyToken=null/
? /configSections
?dataConfiguration defaultDatabase= ORACLE/r
?connectionStringsd
牋?add name=ORACLE connectionString=Data Source=gis;User ID=ZHYUANSHAN;Password=123456;Unicode=True providerName= System.Data.OracleClient/is
?/connectionStringsc
2.创建数据库访问对象
public static Database db = DatabaseFactory.CreateDatabase();
3.插入记录代码
string strsql = INSERT INTO TEST(0,:A,:B) ;
DbCommand cmd = db. GetSqlStringCommand(strsql);
db. AddInParameter (cmd, A, DbType.Int32, 23);
db. AddInParameter (cmd, B, DbType.String, ‘ddd’);
db.ExecuteNonQuery(cmd);
五.问题
上面已经实现了数据的插入,也实现了字段自增,但是还有个问题就是,当有两个表关联时,我希望插入一个表的数据后,能够返回自增字段的值,然后再把这个值插入到另外一个表,实现两个表的关联。
如何返回这个新插入的自增字段的值呢?
有人说直接再写一行代码执行SELECT Test_SQL.currval from dual来获取自增字段的值不就可以了吗?
实际这样调用是不行的,SELECT Test_SQL.currval from dual只能在使用currval.nextval的同一个会话中调用,否则会出现“序列(号)不存在”的错误。
六.实现返回自增标识字段值
要马上获取自增标识字段的值,有以下3中方法:
1.先取值再插入(不需要触发器)
先执行命令SELECT Test_SQL.nextval from dual,来获取标识的值,再把这个值作为参数插入到数据库。这样就不需要触发器了,但是导致编码变得复杂,要增加获取标识的代码,插入时也要多传一个参数。
获取标识字段值代码:
?
string strsql = SELECT Test_SQL.nextval FROM dua
您可能关注的文档
- $常见外贸英文缩写【DOC精选】.doc
- ((人教版))[[初一英语教案]]七级英语第一学期《Unit Do you have a soccerball》教案【DOC精选】.doc
- ((新人教版))排列组合、二项式定理、概率单元测试卷【DOC精选】.doc
- ()9小学教师招聘考试教育学试题及答案【DOC精选】.doc
- ()特殊的高次方程的解法【DOC精选】.doc
- (++)m 块施工技术总结【DOC精选】.doc
- (-)对策表矩阵图和pdpc图法_secret【DOC精选】.doc
- (.)RAKE接收机(解调器)【DOC精选】.doc
- (@)计算机工程应用习题【DOC精选】.doc
- (B级)模拟试题答案【DOC精选】.doc
最近下载
- 《懂得爱:在亲密关系中成长》读书笔记.docx VIP
- 上海市中考语文专题复习:文言文虚词简表.pdf VIP
- 广西盐业公司的招聘试卷.pdf VIP
- 2025《民营经济促进法》解读课件PPT.pptx
- Haier海尔空调KFRd-120LW 7YAF81 KFRd-120LW 5YAF82 KFR-12ity 5YAF82用户手册.pdf
- 雪铁龙维修 手册 图DS_5LS_Owner_Book_ZH.pdf VIP
- 烟风煤支吊架设计手册-新版.pdf VIP
- 长期卧床鼻饲患者的护理ppt.pptx VIP
- 教学能力大赛教案--智慧工厂的安全策略之VLAN的划分.docx VIP
- GB 6246-2011 消防水带标准规范‘’.pdf
文档评论(0)