• silverlight 通过WCF与LinQ对数据库进行操作1


        本实例演示silverlight通过WCF与简单的LinQ语句对SQL数据库进行简单的增删改查。参考《银光志 silverlight 3.0开发详解与最佳实践》一书。

    1.首先在SQL Server Management studio中创建一个名为Sil_Test的数据库,在Sil_Test中创建表Person,表结构如下:

        其中id为自动增长主键,不允许空值。 

    2.在Visual Studio 2010中创建silverlight应用程序SilverlightApplication8。打开VS中的服务器资源管理器视图,右键数据连接,选择“添加连接(A)……”

    3.在浏览里找到刚刚建好的数据库Sil_Test.mdf,点击确定(连接前要确定数据库y已经断开和SQL Server Management studio的连接)

    4.这时在服务器视图中可以看到新建的表Person。在VS解决方案视图的web项目上点击右键->添加->新建项,在弹出的窗口中选择LinQ To SQL类

    5.拖动person表到DataClasses1.dbml中,visual studio 2010会自动建立相应类及关系。

    6.同样在VS解决方案视图的web项目上点击右键->添加->新建项,选择WCF服务,默认名称为Service1.svc.在Service1.svc中输入如下代码添加插入数据方法:

     // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名“Service1”。
        public class Service1 : IService1
        {
            public void DoWork()
            {
            }
            public void Insert(string pName,int pAge) 
            {
                DataClasses1DataContext dc = new DataClasses1DataContext();
                person p = new person()
                {
                    name = pName,
                    age = pAge
                };
                dc.person.InsertOnSubmit(p);
                dc.SubmitChanges();
            }
        }

    并在IService1中加入Insert方法:

     // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IService1”。
        [ServiceContract]
        public interface IService1
        {
            [OperationContract]
            void DoWork();
            [OperationContract]
            void Insert(string pName, int pAge);
        }


    这样web端的WCF就完成了,在项目silverlightApplic8内的引用中右击找到“添加服务引用”,点击“发现”,会自动找到WCF服务,选中后点击确定。

    现在打开MainPage.xaml,拖入两个textbox分别用于输入姓名和年龄,按钮用于触发插入事件。

    双击“插入”按钮,进入事件处理代码,MainPage代码如下:

     public partial class MainPage : UserControl
        {
            ServiceReference1.Service1Client proxy = new ServiceReference1.Service1Client();
    
            public MainPage()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, RoutedEventArgs e)
            {
                string name = textBox1.Text;
                int age = Convert.ToInt32(textBox2.Text);
                proxy.InsertAsync(name, age);
            }
        }

    现在启动silverlight程序,输入一个姓名及年龄,点击”插入“,再查看数据库里Person表发现里面多了一条数据
    目前进度代码:https://files.cnblogs.com/infly123/SilverlightApplication8.rar

    关于查询、修改、删除数据库的数据及数据与DataGrid控件的绑定,请继续关注我的博客,我会在此软件基础上继续更新

  • 相关阅读:
    info命令简介
    scheme代码返回3个数中较大2个数之和
    mitscheme的标准库函数
    如何理解认知
    mitscheme编辑和装入程序文件
    scheme格式化输出字符串
    SQLServer中批量导出所有作业或链接脚本
    DAMA学习笔记(1)
    SQLServer AlwaysON修改可用性组的监听端口
    SQLServer将数据库置为只读
  • 原文地址:https://www.cnblogs.com/infly123/p/3100460.html
Copyright © 2020-2023  润新知