欢迎投稿

今日深度:

几步走,教你创建简单访问数据库方法(1)(2)

第七步:我们在SQL SERVER2008中创建一个示例数据库名为SLRiaTest。在这个数据库里面新增一个UserInfo表,在里面添加字段如下:

 

第八步:编写一个类,来连接SLRiaTest数据库,获取DataSet数据集。

  1. DB.cs数据库访问类   
  2.     /// <summary> 
  3.     /// DB 的摘要说明  
  4.     /// </summary> 
  5.     public   class  DB  
  6.     {  
  7.         private static IsolationLevel m_isoLevel = IsolationLevel.ReadUncommitted;  
  8.         private static string connStr = string.Empty;  
  9.         private DB()  
  10.         {  
  11.         }  
  12.         #region DB2 Access Functions  
  13.         static public IsolationLevel IsolationLevel  
  14.         {  
  15.             get  
  16.             {  
  17.                 return m_isoLevel;  
  18.             }  
  19.         }  
  20.         /// <summary> 
  21.         /// Gets Connection out of Web.config  
  22.         /// </summary> 
  23.         /// <returns>Returns SqlConnection</returns> 
  24.         public static SqlConnection GetConnection()  
  25.         {  
  26.             if (connStr == string.Empty)  
  27.             {  
  28.                 AppSettingsReader configurationAppSettings = new AppSettingsReader();   
  29.                 connStr = "Data Source=CXL-DC6F5F6CA80;  
  30.                 POOLING=FALSE;database=SLRiaTest;  
  31.                 User ID=sa;Password=123456";  
  32.             }  
  33.             SqlConnection conn = new SqlConnection(connStr);  
  34.             conn.Open();  
  35.             return conn;  
  36.         }  
  37.         /// <summary> 
  38.         /// Gets data out of database using a plain text string command  
  39.         /// </summary> 
  40.         /// <param name="sql">string command to be executed</param> 
  41.         /// <returns>DataTable with results</returns> 
  42.         static public DataSet Getdata(string sql)  
  43.         {  
  44.             using (SqlConnection conn = GetConnection())  
  45.             {  
  46.                 using (SqlTransaction trans = conn.BeginTransaction(m_isoLevel))  
  47.                 {  
  48.                     try  
  49.                     {  
  50.                         using (SqlCommand cmd = conn.CreateCommand())  
  51.                         {  
  52.                             if (sql != null)  
  53.                             {  
  54.                                 sqlsql = sql.ToLower().Replace("<;", "");  
  55.                                 //.Replace(Convert.ToChar(32).ToString(), "&nbsp;").Replace(" ", "&nbsp;").Replace("%32", "&nbsp;").Replace("%20", "&nbsp;");  
  56.                                 sqlsql = sql.Replace(">;", "");  
  57.                                 sqlsql = sql.Replace("script", "");  
  58.                                 sqlsql = sql.Replace("object", "");  
  59.                                 sqlsql = sql.Replace("applet", "");  
  60.                                 sqlsql = sql.Replace("[", "");  
  61.                                 sqlsql = sql.Replace("]", "");  
  62.                                 sqlsql = sql.Replace("execute", "");  
  63.                                 sqlsql = sql.Replace("exec", "");  
  64.                                 sqlsql = sql.Replace("union", "");  
  65.                                 sqlsql = sql.Replace("drop", "");  
  66.                                 sqlsql = sql.Replace("delete", "");  
  67.                                 //  sqlsql = sql.Replace("chr", "");  
  68.                                 //sqlsql = sql.Replace("mid", "");  
  69.                                 sqlsql = sql.Replace("truncate", "");  
  70.                                 sqlsql = sql.Replace("nchar", "");  
  71.                                 //  sqlsql = sql.Replace("varchar", "");  
  72.                                 //sqlsql = sql.Replace("char", "");  
  73.                                 sqlsql = sql.Replace("alter", "");  
  74.                                 // sqlsql = sql.Replace("cast", "");  
  75.                                 sqlsql = sql.Replace("exists", "");  
  76.                                 sqlsql = sql.Replace("update", "");  
  77.                             }  
  78.                             cmd.Transaction = trans;  
  79.                             cmd.CommandType = CommandType.Text;  
  80.                             cmd.CommandText = sql;  
  81.                             using (DataSet ds = new DataSet())  
  82.                             {  
  83.                                 using (SqlDataAdapter da = new SqlDataAdapter())  
  84.                                 {  
  85.                                     da.SelectCommand = cmd;  
  86.                                     da.SelectCommand.Connection = conn;  
  87.                                     da.Fill(ds);  
  88.                                     return ds;  
  89.                                 }  
  90.                             }  
  91.                         }  
  92.                     }  
  93.                     finally  
  94.                     {  
  95.                         trans.Commit();  
  96.                     }  
  97.                 }  
  98.             }  
  99.         }  
  100.         #endregion  
  101.     }  
  102.  

第九步:鼠标右键点击SLGetDataFromWCFRIA项目“添加服务引用”即引用刚才我们编写的WCF服务。

 

第十步:添加一个UserInfo的实体类集合。代码如下:

  1. /// <summary> 
  2. /// 用户实体类  
  3. /// </summary> 
  4. public class UserInfo  
  5. {  
  6.     private string _ID;  
  7.     private string _UserName;  
  8.     private string _UserAddr;  
  9.     private string _UserTel;  
  10.     public string ID  
  11.     {  
  12.         get { return _ID; }  
  13.         set { _ID = value; }  
  14.     }  
  15.     public string UserName  
  16.     {  
  17.         get { return _UserName; }  
  18.         set { _UserName = value; }  
  19.     }  
  20.     public string UserAddr  
  21.     {  
  22.         get { return _UserAddr; }  
  23.         set { _UserAddr = value; }  
  24.     }  
  25.     public string UserTel  
  26.     {  
  27.         get { return _UserTel; }  
  28.         set { _UserTel = value; }  
  29.     }  
  30. }  

第十一步:点击MainPage.xaml文件,添加一个DataGird控件命名为grShow,在MainPage.xaml.cs文件中编写以下代码获取WCF RIA services读取到的数据库数据:

  1. public partial class MainPage : UserControl  
  2. {  
  3.     public MainPage()  
  4.     {  
  5.         InitializeComponent();  
  6.         //创建一个代理类的实例  
  7.         SLWCFRIAClient client = new SLWCFRIAClient();  
  8.         //调用GetData方法并加载事件  
  9.         client.GetDataAsync();  
  10.         client.GetDataCompleted += new EventHandler<GetDataCompletedEventArgs>(client_GetDataCompleted);  
  11.     }  
  12.     public  List<UserInfo> userList = new List<UserInfo>();  
  13.     void client_GetDataCompleted(object sender, GetDataCompletedEventArgs e)  
  14.     {  
  15.         using (XmlReader xReader = XmlReader.Create(new StringReader(e.Result)))  
  16.         {  
  17.             //XmlReader读取XML数据  
  18.             while (xReader.ReadToFollowing("Table"))  
  19.             {  
  20.                 xReader.ReadToDescendant("ID");  
  21.                 string id = xReader.ReadElementContentAsString();  
  22.                 xReader.ReadToNextSibling("UserName");  
  23.                 string username = xReader.ReadElementContentAsString();  
  24.                 xReader.ReadToNextSibling("UserAddr");  
  25.                 string useraddr = xReader.ReadElementContentAsString();  
  26.                 xReader.ReadToNextSibling("UserTel");  
  27.                 string usertel = xReader.ReadElementContentAsString();  
  28.                 //实例化类并添加进实体类List<> 
  29.                 UserInfo uinfo = new UserInfo(){ID=idUserName=username,UserAddr=useraddr,UserTel=usertel};  
  30.                 userList.Add(uinfo);  
  31.             }  
  32.             this.grShow.ItemsSource = userList;  
  33.         }  
  34.     }  
  35. }  

最后我们看最后的效果图,本实例采用VS2010+Silverlight 4.0+MS SQL SERVER 2008,复制下述网址 http://files.cnblogs.com/chengxingliang/SLGetDataFromWCFRIA.rar)即可下载本实例源码和示例数据库

 


www.htsjk.Com true http://www.htsjk.com/shujukugl/17843.html NewsArticle 第七步: 我们在SQL SERVER2008中创建一个示例数据库名为SLRiaTest。在这个数据库里面新增一个UserInfo表,在里面添加字段如下: 第八步: 编写一个类,来连...
评论暂时关闭