• 豆瓣电台WP7客户端 开发记录3


    今天完成了收藏功能。本来想用豆瓣账号登陆获取收藏列表的,不过后来一想我只要把歌曲信息记录在本地不是简单多了么。况且mango已经支持本地数据库,更能实践一下。

    下面说说mango本地数据库开发。

    这个其实如果你用过Linq to sql的话就很容易使用它了。

    首先我们需要一个类来继承DbConent

    using Model;
    using System.Data.Linq;

    namespace DbContent
    {
        
    public class DBFMDB :DataContext
        {
            
    public static string _connStr = "Data Source=isostore:/FavSong.sdf";

            
    public DBFMDB(string connStr)
                : 
    base(connStr)
            { }

            
    public Table<dbSong> favSong;
        }
    }
    这里千万注意 
    public Table<dbSong> favSong;

    你不能写成  

    public Table<dbSong> favSong{get;set;},不然报错!为什么?我也不知道。

    Model类:

    using System.Data.Linq.Mapping;

    namespace Model
    {
        [Table]
        
    public class dbSong 
        {
            
    private int _id;
            [Column(IsPrimaryKey
    =true,
                IsDbGenerated 
    = true,
                DbType 
    = "INT NOT NULL Identity",
                CanBeNull
    =false,
                AutoSync
    =AutoSync.OnInsert)]
            
    public int ID
            { 
    get { return _id; } set { _id = value; } }

            
    private string _url;
            
    /// <summary>
            
    /// MP3 URL
            
    /// </summary>
            [Column]
            
    public string url
            { 
     

    get { returnthis._url; } 

    set { _url =value; }

     }

    。。。。

     这里同上, 你不能写成 public string url {get;set;} 一定要像.NET 2.0的时候那样写属性。不然报错。为什么?我还是不知道。

    最后是数据库操作类:

     using System.Data.Linq;

    using System.Linq;
    using DbContent;
    using Model;
    using System.Collections.Generic;

    namespace Helper
    {
        
    public class DbHelper
        {
            
    private static DBFMDB db;
            
    /// <summary>
            
    /// 创建
            
    /// </summary>
            public static void CreateDb()
            {
               
    if(db==null)
                {
                    db 
    = new DBFMDB(DBFMDB._connStr);
                }

               
    if (!db.DatabaseExists())
               {
                   db.CreateDatabase();
               }
                
            }

            
    public static void AddSong(dbSong song)
            {

                db.favSong.InsertOnSubmit(
    song);
                db.SubmitChanges();
            }

            
    public static void DelSong(dbSong song)
            {
                dbSong oldS 
    = db.favSong.Single(s => s.url == song.url);
                db.favSong.DeleteOnSubmit(oldS);
                db.SubmitChanges();
            }

            
    public static List<dbSong> GetFavSongList()
            {
                var list 
    = db.favSong.ToList();
                
    return list;
            }

            
    public static bool IsFavSong(dbSong song)
            {
                var obj 
    = db.favSong.Where(o=>o.url==song.url);
                
    if (obj != null&&obj.Count()>0)
                    
    return true;
                
    else
                    
    return false;
            }
        }

    } 

    这个就没什么好说的了~~

    收工睡觉~~~ 

    QQ群:1022985150 VX:kklldog 一起探讨学习.NET技术
    作者:Agile.Zhou(kklldog)
    出处:http://www.cnblogs.com/kklldog/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    phpstorm 使用 Xdebug 调试代码
    frp 实现内网穿透(Windows 版)
    update-alternatives 使用详解
    Linux 虚拟机使用 xshell 连接 (debian、kali、CentOS)
    PHP xml 转数组 数组转 xml 操作
    Mac上查看当前安卓手机上打开的app的包名和主程序入口
    启动appium server时打印日志时间
    App自动化测试框架学习探索--从零开始设计
    System.getProperty("user.dir")获取的到底是什么路径?
    读取Excel文件,抛出类似Cleaning up unclosed ZipFile for archive D:projectmyTestautoAppUIexcelMode用例模板2.xlsx 错误解决
  • 原文地址:https://www.cnblogs.com/kklldog/p/2161492.html
Copyright © 2020-2023  润新知