Asp.Net教程,WinForm教程,Asp.Net MVC,vs2008教程,vs2010教程,Silverlight技术,源码下载,Asp.Net视频教程
全站热门标签
vs2010 Silverlight 存储过程 水晶报表 ADO.NET JavaScript LINQ AjaxPro DataGridView 面向对象 Extjs GridView XML DevExpress HTML教程 Oracle jQuery 分页 GDI+ Visual C++2010 MySQL Office2010 WPF MVC Dojo WCF4.0 VB.NET Sql2005 textbox cookie WCF WinForm Discuz!NT SQL经典语句 T-SQL checkbox ASPxGridView F# asp.net SQL VS2008新特性 DropDownList Access TreeView Ajax VS2008 页面执行时间 Flex 字符串 回调 VB2005 DataSet C#时间 ASP.NET性能优化 用户在线检测 动画
当前位置: 主页 > Silverlight >

SilverLight中使用WebService对数据库做CRUD

时间:2010-08-14 08:41来源:未知 作者:admin 点击:

1.       新建一个asmx文件

    public class MainService : System.Web.Services.WebService

    {

        #region User CRUD

        [WebMethod]

        public bool CreateUser(string userName)

        {

            try

            {

                SqlConnection _sqlConnection = new SqlConnection();

                _sqlConnection.ConnectionString = ConfigurationManager.

                    ConnectionStrings["sqlConnectionString"].ToString();

                _sqlConnection.Open();

                SqlCommand command = new SqlCommand();

                command.Connection = _sqlConnection;

                command.CommandType = CommandType.Text;

                command.CommandText = "INSERT INTO [User] ([UserName]) VALUES ('" +

                    userName.ToString().Replace("'", "''") + "')";

                command.ExecuteNonQuery();

                _sqlConnection.Close();

                return true;

            }

            catch (Exception ex)

            {

                return false;

            }

        }

        [WebMethod]

        public string RetrieveUser(int userId)

        {

            try

            {

                SqlConnection _sqlConnection = new SqlConnection();

                _sqlConnection.ConnectionString = ConfigurationManager.

                    ConnectionStrings["sqlConnectionString"].ToString();

                _sqlConnection.Open();

                SqlDataAdapter da = new SqlDataAdapter();

                da.SelectCommand = new SqlCommand("SELECT * FROM [User] WHERE [UserID] = " +

                    userId.ToString().Replace("'", "''"), _sqlConnection);

                DataSet ds = new DataSet();

                da.Fill(ds);

                StringBuilder sb = new StringBuilder();

                sb.Append("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");

                sb.Append("<Users>");

                foreach (DataRow dr in ds.Tables[0].Rows)

                {

                    sb.Append("<User>");

                    sb.Append("<ID>");

                    sb.Append(dr[0].ToString());

                    sb.Append("</ID>");

                    sb.Append("<Name>");

                    sb.Append(dr[1].ToString());

                    sb.Append("</Name>");

                    sb.Append("</User>");

                }

                sb.Append("</Users>");

                _sqlConnection.Close();

                return sb.ToString();

            }

            catch (Exception ex)

            {

                return string.Empty;

            }

        }

        [WebMethod]

        public string RetrieveUsers()

        {

            try

            {

                SqlConnection _sqlConnection = new SqlConnection();

                _sqlConnection.ConnectionString = ConfigurationManager.

                    ConnectionStrings["sqlConnectionString"].ToString();

                _sqlConnection.Open();

                SqlDataAdapter da = new SqlDataAdapter();

                da.SelectCommand = new SqlCommand("SELECT * FROM [User]", _sqlConnection);

                DataSet ds = new DataSet();

                da.Fill(ds);

                StringBuilder sb = new StringBuilder();

                sb.Append("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");

                sb.Append("<Users>");

                foreach (DataRow dr in ds.Tables[0].Rows)

                {

                    sb.Append("<User>");

                    sb.Append("<UserID>");

                    sb.Append(dr[0].ToString());

                    sb.Append("</UserID>");

                    sb.Append("<UserName>");

                    sb.Append(dr[1].ToString());

                    sb.Append("</UserName>");

                    sb.Append("</User>");

                }

                sb.Append("</Users>");

 

                _sqlConnection.Close();

                return sb.ToString();

            }

            catch (Exception ex)

            {

                return string.Empty;

            }

        }

        [WebMethod]

        public bool UpdateUser(int userID, string userName)

        {

            try

            {

                SqlConnection _sqlConnection = new SqlConnection();

                _sqlConnection.ConnectionString = ConfigurationManager.

                    ConnectionStrings["sqlConnectionString"].ToString();

                _sqlConnection.Open();

                SqlCommand command = new SqlCommand();

                command.Connection = _sqlConnection;

                command.CommandType = CommandType.Text;

                command.CommandText = "UPDATE [User] " +

                    "SET [UserName] = '" + userName.ToString().Replace("'", "''") + "'" +

                    "WHERE [UserID] = " + userID.ToString();

                command.ExecuteNonQuery();

                _sqlConnection.Close();

                return true;

            }

            catch (Exception ex)

            {

                return false;

            }

        }

        [WebMethod]

        public bool DeleteUser(int userID)

        {

            try

            {

                SqlConnection _sqlConnection = new SqlConnection();

                _sqlConnection.ConnectionString = ConfigurationManager.

                    ConnectionStrings["sqlConnectionString"].ToString();

                _sqlConnection.Open();

                SqlCommand command = new SqlCommand();

                command.Connection = _sqlConnection;

                command.CommandType = CommandType.Text;

                command.CommandText = "DELETE [User] WHERE [UserID] = " + userID.ToString();

                command.ExecuteNonQuery();

                _sqlConnection.Close();

                return true;

            }

            catch (Exception ex)

            {

                return false;

            }

        }

        #endregion

}

2.      设置xaml页面文件

  <data:DataGrid x:Name="dgWork" Background="Aquamarine" Height="200"

               Width="700" Margin="0,5,0,10"

              AutoGenerateColumns="False"  >

                    <data:DataGrid.Columns>

                        <data:DataGridTextColumn Header="用户ID" IsReadOnly="True"  Width="80"  Binding="{Binding UserID}" />

                        <data:DataGridTextColumn Header="用户名称" IsReadOnly="True"  Width="200"   Binding="{Binding UserName}" />

                    </data:DataGrid.Columns>

                </data:DataGrid>

3.      在SilverLight项目中新建实体类

    public class User

    {

        public int UserID { get; set; }

        public string UserName { get; set; }

}

4.      调用WebService,并显示数据

  public partial class MainPage : UserControl

    {

        public MainPage()

        {

            InitializeComponent();

            Loaded += new RoutedEventHandler(MainPage_Loaded);

        }

        private void MainPage_Loaded(object sender, RoutedEventArgs e)

        {

            ListingControlDisplay();

        }

        /// <summary>

        /// 显示数据

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        void ListingControlDisplay()

        {

            MainServiceSoapClient userMgrSoapClient = new MainServiceSoapClient();

            userMgrSoapClient.RetrieveUsersAsync();

            userMgrSoapClient.RetrieveUsersCompleted += new EventHandler<RetrieveUsersCompletedEventArgs>(userMgrSoapClient_RetrieveUsersCompleted);

        }

        /// <summary>

        /// 取数完成后,显示数据

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        void userMgrSoapClient_RetrieveUsersCompleted(object sender, MainService.RetrieveUsersCompletedEventArgs e)

        {

            if (e.Error == null)

            {

                displayData(e.Result);

            }

        }

 

        /// <summary>

        /// 显示数据到界面上

        /// </summary>

        /// <param name="xmlContent"></param>

        private void displayData(string xmlContent)

        {

            if (xmlContent != string.Empty)

            {

                XDocument xmlUsers = XDocument.Parse(xmlContent);

                var users = from user in xmlUsers.Descendants("User")

                            select new

                            {

                                UserID = Convert.ToInt32

                                          (user.Element("UserID").Value),

                                UserName = (string)

                                          user.Element("UserName").Value

                            };

                List<User> usersList = new List<User>();

                foreach (var u in users)

                {

                    User use = new User { UserID = u.UserID, UserName = u.UserName };

                    usersList.Add(use);

                }

                dgWork.ItemsSource = usersList;

            }

            else

            {

                dgWork.ItemsSource = null;

            }

        }

 

(责任编辑:admin)
Tags:Silverlight
责任编辑:admin
返回顶部
------分隔线----------------------------
推荐内容
骆驼户外男 真皮磨砂日常休闲鞋 低帮 2011秋冬新款 专柜正品特价 骆驼户外男 真皮磨砂日常休闲鞋 低帮 2011秋冬新款 专柜正品特价