Home > Database > Mysql Tutorial > body text

silverlight通过WCF访问SQLserver示例

WBOY
Release: 2016-06-07 15:34:30
Original
1104 people have browsed it

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,修改代码:

<span>using</span><span> System.Data;
</span><span>using</span><span> System.Data.SqlClient;
</span><span>using</span><span> System.Web.Configuration;

</span><span>namespace</span><span> testWCFsql.Web
{
    </span><span>public</span> <span>class</span><span> ClassDBserver
    {
        </span><span>static</span> <span>public</span> DataSet DBselect(<span>string</span><span> sql)
        {
            </span><span>string</span><span> conn;
            conn </span>= <span>"</span><span>Data Source=none;Initial Catalog=comDB;User ID=sa;Password=123456</span><span>"</span><span>;
            </span><span>//</span><span>conn = WebConfigurationManager.AppSettings.Get("DBappSettings");
            </span><span>//</span><span>conn = WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;</span>
            <span>try</span><span>
            {
                </span><span>using</span> (SqlConnection cnn = <span>new</span><span> SqlConnection(conn))
                {
                    cnn.Open();
                    </span><span>using</span> (SqlTransaction trans =<span> cnn.BeginTransaction(IsolationLevel.Serializable))
                    {
                        </span><span>try</span><span>
                        {
                            </span><span>using</span> (SqlCommand cmd = <span>new</span><span> SqlCommand(sql, cnn))
                            {
                                cmd.Transaction </span>=<span> trans;
                                </span><span>using</span> (DataSet ds = <span>new</span><span> DataSet())
                                {
                                    </span><span>using</span> (SqlDataAdapter da = <span>new</span><span> SqlDataAdapter(cmd))
                                    {
                                        da.Fill(ds);
                                        trans.Commit();
                                    }
                                    </span><span>return</span><span> ds;
                                }
                            }
                        }
                        </span><span>catch</span><span> (Exception ex)
                        {
                            trans.Rollback();
                            </span><span>return</span> <span>new</span><span> DataSet();
                            </span><span>throw</span><span> ex;
                        }
                        </span><span>finally</span><span>
                        {
                        }
                    }
                }
            }
            </span><span>catch</span><span> (Exception ex)
            {
                </span><span>return</span> <span>new</span><span> DataSet();
                </span><span>throw</span><span> ex;
            }
        }
    }
}</span>
Copy after login

3.右击testWCFsql.web项目添加新建项“启用了Silverlight的WCF服务”,命名为ServiceWCF;
4.修改

<span>[OperationContract]
</span><span>public</span> <span>void</span><span> DoWork()
{
  </span><span>return</span><span>;
 }</span>
Copy after login

<span>using</span><span> System.Data;
</span><span>using</span><span> System.Collections.Generic;

[OperationContract]
</span><span>public</span> List<classemployee><span> getData()
{
    DataSet ds </span>= ClassDBserver.DBselect(<span>"</span><span>select * from employee</span><span>"</span><span>);
    List</span><classemployee> userList = <span>new</span> List<classemployee>();<span>//</span><span>添加using System.Collections.Generic;</span>
    <span>foreach</span> (DataRow dr <span>in</span> ds.Tables[<span>0</span><span>].Rows)
    {
        ClassEmployee user </span>= <span>new</span> ClassEmployee();<span>//</span><span>userList是引用类型,所以这句不能放foreach外面</span>
        user.ID = (<span>int</span>)dr[<span>"</span><span>ID</span><span>"</span><span>];
        user.name </span>= (<span>string</span>)dr[<span>"</span><span>name</span><span>"</span><span>];
        user.departmentID </span>= (<span>int</span>)dr[<span>"</span><span>departmentID</span><span>"</span><span>];
        userList.Add(user);
    }
    </span><span>return</span><span> userList;
}
[DataContract]
</span><span>public</span> <span>class</span><span> ClassEmployee
{
    [DataMember]
    </span><span>public</span> <span>int</span><span> ID;
    [DataMember]
    </span><span>public</span> <span>string</span><span> name;
    [DataMember]
    </span><span>public</span> <span>int</span><span> departmentID;
}</span></classemployee></classemployee></classemployee>
Copy after login

5.生成一下;
6.右击客户端testWCFsql项目,添加服务引用->发现,默认ServiceReference1,确定;
7.双击页面文件MainPage.xaml.cs,从工具箱中拖入DataGrid控件,命名为datagrid1;
8.修改后台代码为:

<span>using</span><span> System.Xml;
</span><span>using</span><span> System.IO;

</span><span>namespace</span><span> testWCFsql
{
    </span><span>public</span> <span>partial</span> <span>class</span><span> MainPage : UserControl
    {
        </span><span>public</span><span> MainPage()
        {
            InitializeComponent();
            ServiceReference1.ServiceWCFClient myClient </span>= <span>new</span><span> ServiceReference1.ServiceWCFClient();
            myClient.getDataCompleted </span>+= <span>new</span> EventHandler<servicereference1.getdatacompletedeventargs><span>(myGetDataCompleted);
            myClient.getDataAsync();
        }

        </span><span>void</span> myGetDataCompleted(<span>object</span><span> sender, ServiceReference1.getDataCompletedEventArgs e)
        {
            System.Collections.ObjectModel.ObservableCollection</span><servicereference1.servicewcfclassemployee> users =<span> e.Result;
            datagrid1.ItemsSource </span>=<span> users;
        }
    }
}</span></servicereference1.servicewcfclassemployee></servicereference1.getdatacompletedeventargs>
Copy after login

9.此步可选:双击Weg.config修改,在

<configuration>
    <system.web></system.web></configuration>
Copy after login

之间插入

    <appsettings>
      <add key="<span">"<span>DBappSetting</span><span>"</span> value=<span>"</span><span>Data Source=none;Initial Catalog=comDB;User ID=sa;Password=123456</span><span>"</span>/>
    </add></appsettings>
    <connectionstrings>
      <add name="<span">"<span>myConnectionString</span><span>"</span> connectionString=<span>"</span><span>Data Source=none;Initial Catalog=comDB;User ID=sa;Password=123456</span><span>"</span> providerName=<span>"</span><span>System.Data.SqlClient</span><span>"</span>/>
    </add></connectionstrings>
Copy after login

同时修改前面ClassDBserver.cs中的连接字符串为从配置文件中读取。
10.Now,just run it!!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template