大家都知道微软的Silverlight是个可以在Mac OS,windows和linux等多个 *** 作系统工作的浏览器插件。而且开发出来的web程序将会是更加安全。
软件配置:
1. Visual Studio 2008,
2. Silverlight 2.
3. sql Server的northwind数据库。
设计要求:
下图所示,包含一个button和两个textBox。第一个textBox能够显示了输入数据,第二个textBox只能够显示数据,button按钮用来触发d出的搜索框的事件。
d出的搜索框将会显示一个datagrID,同时包含搜索功能,如下图所示:
这里有两种方法来把datagrID的数据显示到原来页面的第二个textBox中:
下面我们一步一步来创建这个项目。
第一步: 创建一个Silverlight和WCF 项目。
1. 在Visual Studio 2008中,新建一个Silverlight项目,起个名字叫做popformdemo,如下图所示:
2. 点击OK按钮后,会出现如下的提示:
然后在popformdemo项目下添加一个CusControl文件夹,如下图所示:
3. 在Cuscontrol文件夹下面,添加一个Slilverlight user control文件,命名为’PopForm’如下图:
第二步:创建一个WCF service项目:
这里又很多方式让silverlight插件访问数据库,最常用的是web services和WCF。我在这个例子中将会使用WCF来实现。
1. 在解决方案下面,添加一个新的web应用程序起名字为’DaoWcf’,如下图:
2. 在新建的项目中添加一个WCFService并命名PopDataService如下图:
这时候就会新添加两个IpopDataService.cs和POpDataService.svc文件:
3. WCF Service项目的配置:
在DaoWcf项目中,右键属性,设置local IIS wev server:
然后修改web.config中的数据库连接:
再修改Service binding模式从wshttpBinding为basichttpBinding。
第三步: WCF Service项目所用到的代码:
在PopDataService.svc.cs文件,PopFormClass由一个ID和一个name属性
[DataContract()]
public class PopFormClass
{
[DataMember]
public string ID { get; set; }
[DataMember]
public string name { get; set; }
}
在IPopDataService.cs文件中,IPopDataService接口有3个方法。
[ServiceContract]
public interface IPopDataService
{
[OperationContract]
List<PopFormClass> GetsqlCustomersData();
[OperationContract]
List<PopFormClass> GetsqlEmployeesData();
[OperationContract]
List<PopFormClass> GetsqlProductsData();
}
在IPopDataService的后台文件中吧三个抽象函数具体话:
public class PopDataService : IPopDataService
{
private string sqlConString;
public PopDataService()
{
sqlConString = ConfigurationManager.ConnectionStrings["northWindDb"].ConnectionString;
}
public List<PopFormClass> GetsqlCustomersData()
{
List<PopFormClass> List = new List<PopFormClass>();
try
{
List = GetPopData("select CustomerID,Companyname from Customers order by 1");
}
catch (Exception ex)
{
throw ex;
}
return List;
}
public List<PopFormClass> GetsqlProductsData()
{
List<PopFormClass> List = new List<PopFormClass>();
try
{
List = GetPopData("select ProductID,Productname from Products order by 1");
}
catch (Exception ex)
{
throw ex;
}
return List;
}
public List<PopFormClass> GetsqlEmployeesData()
{
List<PopFormClass> List = new List<PopFormClass>();
try
{
List = GetPopData("select EmployeeID,Lastname,Firstname from Employees order by 1");
}
catch (Exception ex)
{
throw ex;
}
return List;
}
GetPopData(string strsql)方法如下,它将会从数据库读取数据放到List<PopFormClass>:
private List<PopFormClass> GetPopData(string strsql)
{
List<PopFormClass> List = new List<PopFormClass>();
using (sqlConnection con = new sqlConnection(sqlConString))
{
con.open();
sqlCommand com = new sqlCommand(strsql,con);
IDataReader dr = com.ExecuteReader();
while (dr.Read())
{
PopFormClass pf = new PopFormClass();
pf.ID = Convert.ToString(dr[0]);
pf.name = Convert.ToString(dr[1]);
List.Add(pf);
}
} return List;
}
最后是测试一下这个WCF项目是否正常工作:
总结
以上是内存溢出为你收集整理的Silverlight+WCF实现一个d出选择框---Part 1全部内容,希望文章能够帮你解决Silverlight+WCF实现一个d出选择框---Part 1所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)