

VS2013+sql2012+win8.1测试通过 作者:一剑 1.创建sliverlight项目testWCFsql; 2.右击web项目添加新建项-类,命名为ClassDBserver,修改代码: using System.Data; using System.Data.SqlClient; using System.Web.Configuration; namespace testWCFsql.Web{
VS2013+sql2012+win8.1测试通过 作者:一剑
1.创建sliverlight项目testWCFsql;
2.右击web项目添加新建项->类,命名为ClassDBserver,修改代码:
using System.Data;
using System.Data.SqlClient;
using System.Web.Configuration;
namespace testWCFsql.Web
{
public class ClassDBserver
{
static public DataSet DBselect(string sql)
{
string conn;
conn = "Data Source=none;Initial Catalog=comDB;User ID=sa;Password=123456";
//conn = WebConfigurationManager.AppSettings.Get("DBappSettings");
//conn = WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
try
{
using (SqlConnection cnn = new SqlConnection(conn))
{
cnn.Open();
using (SqlTransaction trans = cnn.BeginTransaction(IsolationLevel.Serializable))
{
try
{
using (SqlCommand cmd = new SqlCommand(sql, cnn))
{
cmd.Transaction = trans;
using (DataSet ds = new DataSet())
{
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
da.Fill(ds);
trans.Commit();
}
return ds;
}
}
}
catch (Exception ex)
{
trans.Rollback();
return new DataSet();
throw ex;
}
finally
{
}
}
}
}
catch (Exception ex)
{
return new DataSet();
throw ex;
}
}
}
}3.右击testWCFsql.web项目添加新建项“启用了Silverlight的WCF服务”,命名为ServiceWCF;
4.修改
[OperationContract]
public void DoWork()
{
return;
}为
using System.Data; using System.Collections.Generic; [OperationContract] public ListgetData() { DataSet ds = ClassDBserver.DBselect("select * from employee"); List userList = new List ();//添加using System.Collections.Generic; foreach (DataRow dr in ds.Tables[0].Rows) { ClassEmployee user = new ClassEmployee();//userList是引用类型,所以这句不能放foreach外面 user.ID = (int)dr["ID"]; user.name = (string)dr["name"]; user.departmentID = (int)dr["departmentID"]; userList.Add(user); } return userList; } [DataContract] public class ClassEmployee { [DataMember] public int ID; [DataMember] public string name; [DataMember] public int departmentID; }
5.生成一下;
6.右击客户端testWCFsql项目,添加服务引用->发现,默认ServiceReference1,确定;
7.双击页面文件MainPage.xaml.cs,从工具箱中拖入DataGrid控件,命名为datagrid1;
8.修改后台代码为:
using System.Xml;
using System.IO;
namespace testWCFsql
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
ServiceReference1.ServiceWCFClient myClient = new ServiceReference1.ServiceWCFClient();
myClient.getDataCompleted += new EventHandler(myGetDataCompleted);
myClient.getDataAsync();
}
void myGetDataCompleted(object sender, ServiceReference1.getDataCompletedEventArgs e)
{
System.Collections.ObjectModel.ObservableCollection users = e.Result;
datagrid1.ItemsSource = users;
}
}
} 9.此步可选:双击Weg.config修改,在
之间插入
"DBappSetting" value="Data Source=none;Initial Catalog=comDB;User ID=sa;Password=123456"/>"myConnectionString" connectionString="Data Source=none;Initial Catalog=comDB;User ID=sa;Password=123456" providerName="System.Data.SqlClient"/>
同时修改前面ClassDBserver.cs中的连接字符串为从配置文件中读取。
10.Now,just run it!!
