大家都知道微软的Silverlight是个可以在Mac OS,windows和Linux等多个操作系统工作的浏览器插件。而且开发出来的web程序将会是更加安全。
软件配置:
1. Visual Studio 2008,
2. Silverlight 2.
设计要求:
下图所示,包含一个button和两个textBox。第一个textBox能够显示了输入数据,第二个textBox只能够显示数据,button按钮用来触发弹出的搜索框的事件。
弹出的搜索框将会显示一个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:
再修改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项目是否正常工作:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。