教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

通过Silverlight WCF方式连接Oracle数据库

来源:网络收集 时间:2026-08-29
导读: 通过Silverlight WCF方式连接Oracle数据库 2012年11月21日星期三 17:12 这几天搜索了很多关于如何通过Silverlight连接Oracle数据库,网上虽然有很多种方式,但是大部分都需要安装其他的东西,我的方式是从一篇英文文章那里得到的,所以,现在把这个具体的过

通过Silverlight WCF方式连接Oracle数据库

2012年11月21日星期三

17:12

这几天搜索了很多关于如何通过Silverlight连接Oracle数据库,网上虽然有很多种方式,但是大部分都需要安装其他的东西,我的方式是从一篇英文文章那里得到的,所以,现在把这个具体的过程,用中文的方式呈现出来。提前说明下关于我的数据库的信息,在下面的操作中会用到,避免大家不知道要用的是哪一个。我的Oracle数据库的实例名是ORCL,用户名是DHadmin,密码是DHhyhd123,表的名字是TT,表中有两个字段(ID和标准名称汉字),属性值分别是(1和崇明岛)。

1、创建Silverlight应用程序,如下图所示:

下面这个界面中,要将启用WCF RIA服务勾选上,如下图:

你也可以在expression Blend创建工程,这样你就可以很容易的创建一个更好的界面的xmal。在这里,我就用VS本身的界面。

2、向工程里添加启用Silverlight功能的 WCF服务。右击项目(带web后缀的那个),在添加中,选择新建项,出现的界面如下,在Silverlight中,选择启用了Silverlight的WCF服务。在名称那里,可以修改名称,我用的是默认的这个名称。单击添加。

现在在你的工程中,就会添加红色区域所示的文件。

3、添加一个新的项目到现在的解决方案中,用来从数据库中获得数据。右击解决方案,在添加里,选择新建项目,新建一个类库,单击确定。如下图:

4、创建了新的项目之后,现在你的解决方案管理器中应该是这个样子的

但是,在这里要说明一点,就是要给上图红框中显示的那个类重命名,名字要和你要连接的那个Oracle数据库中的表的名字一致,一定要这样做,我Oracle数据库中,我要查看的那个表的名字叫TT,所以更改名字后是这样的

现在就开始向TT这个类中添加代码,添加代码之前,要先添加一个引用,

System.Runtime.Serialization,代码如下:

Using System.Runtime.Serialization;

代码添加完成后,要生成这个项目。里面的代码是对应数据库表中的每一个字段值,通过get和set来获得。

5、把新建的这个项目,即ClassLibrary1作为引用添加到SilverlightApplication1.Web中,右击SilverlightApplication1.Web项目下的引用,选择添加引用,在项目中,可以找到

ClassLibrary1,把它添加进来就可以。如下图:

除了添加这个项目引用之外,还需要添加System.Data,System.Data.OracleClient,

System.Collections.Generic。

现在打开之前添加的那个service1.svc.cs文件,在这个文件中,有自带的公共接口DoWork,把这个方法注释掉,添加我们自己的代码,要记得添加如下几个引用:

using System.Collections.Generic;

using ClassLibrary1;

using System.Data;

using System.Data.OracleClient;

我们自己添加的代码如下:

public class Service1

{

[OperationContract]

public List<TT> GetDatabyName(Int32 pInParam)

{

String oracleSql;

List<TT> returnlist = new List<TT>();

String oracleConnString = "Data Source=ORCL;User ID=DHadmin;Password=DHhyhd123;"; OracleConnection cnn = new OracleConnection(oracleConnString);

cnn.Open();

//pass your SQL filter paramenter here

oracleSql = "SELECT * FROM TT WHERE ID=" + pInParam;

OracleCommand cmd = new OracleCommand(oracleSql, cnn);

OracleDataAdapter da = new OracleDataAdapter(cmd);

DataSet ds = new DataSet();

da.Fill(ds, "TT");

foreach (DataRow dr in ds.Tables["TT"].Rows)

{

returnlist.Add(new TT

{

ID = Convert.ToInt32(dr["ID"]),

标准名称汉字=dr["标准名称汉字"].ToString()

});

}

return returnlist;

}

//public void DoWork()

//{

// // 在此处添加操作实现

// return;

//}

// 在此处添加更多操作并使用 [OperationContract] 标记它们

}

添加结束后重新生成一下。这里说明一下,一定要重新生成一下,原因在后面的操作中我会说明。

6、给Silverlight项目(SilverlightApplication1)添加服务引用,右击SilverlightApplication1,选择添加服务引用,出现的对话框如下:

单击这个对话框里的发现按钮,会得到如下的结果:

在命名空间那里改一个名字(建议修改,这样在后面的代码中会显得正式点),然后单击确定,添加这个服务引用。这里我就要说明一下,为什么之前我强调做完之后要生成和保存,因为在这里,如果不保存的话,就会有错误的信息提示(错误信息提示见下图)。

遇见这个错误的处理方法就是,单击确定后,重新生成你的工程,然后重新添加服务引用。 添加成功后,你会在你的工程里看见两个新的文件,如下图:

双击ServiceReferences.ClientConfig文件,在这个文件中,endpoint里面,可以看见我们的服务地址。

8、到这里,与数据库的链接基本就结束了,接下来是验证我们已经成功的连接上数据库。在MainPage.xmal文件中,添加一个Button和一个Textbox,为Button添加一个click事件。在事件中,添加代码如下:

using ceshi1.OracelServiceRef;

private void button1_Click(object sender, RoutedEventArgs e)

{

SilverlightApplication1.OracelServiceRef.Service1Client client=new

SilverlightApplication1.OracelServiceRef.Service1Client();

client.GetDatabyNameAsync(Convert.ToInt32(textBox1.Text.ToString()));

client.GetDatabyNameCompleted += new

EventHandler<GetDatabyNameCompletedEventArgs>(client_GetDatabyNameCompleted); client.CloseAsync();

}

void client_GetDatabyNameCompleted(object sender, GetDatabyNameCompletedEventArgs

e)

{

//throw new NotImplementedException();

System.Collections.ObjectModel.ObservableCollection<OracelServiceRef.TT> temp = new System.Collections.ObjectModel.ObservableCollection<TT>();

temp = e.Result;

for (int i = 0; i < temp.Count; i++)

{

MessageBox.Show(temp[i].ID.ToString() + "and" + temp[i].标准名称汉字.ToString()); }

}

运行程序。

这样,用Silverlight连接Oracle数据库就操作完成了。

…… 此处隐藏:1859字,全部文档内容请下载后查看。喜欢就下载吧 ……
通过Silverlight WCF方式连接Oracle数据库.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/1934861.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)