使用C#将数据插入SQLite数据库

时间:2015-04-11 07:11:53

标签: c# android database sqlite xamarin

我正在SQLite中使用Visual Studio Xamarin创建一个C#数据库。

我应该注意,这只适用于android

我正在努力使其能够将数据插入SQLite数据库,但我不确定如何。

我一直关注this,但我仍然不确定。

这是我想要创建的方法。

    /// <summary>
    /// Insert a single ping group into the SQLite ping database.
    /// </summary>
    /// <param name="pingGroup"></param>
    public void AddUnsynchronizedPing(PingGroup pingGroup)
    {
        // TODO: Add the passed ping group parameter into the SQLite database as new/unsynchronized.
        if (pingGroup != null)
        {
            // Add ping group to the database.
            // Add pings to the database.
            // Maybe one step, maybe done separately.
            // If done separately, must set Ping.PingGroupID to ID of original ping group.
        }
    }

对于上下文,这是整个班级。

namespace BB.Mobile
{
/// <summary>
/// A class to provide a single interface for interacting with all SQLite data operations for stored tracking points.
/// </summary>
/// 
class DataManager
{
    private SQLiteConnection db = null;

    public DataManager()
    {
        if (this.db == null)
        {
            string dbPath = Path.Combine(
             System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal),
             "bb.db3");

            db = new SQLiteConnection(dbPath);
            db.CreateTable<Ping>();
            db.CreateTable<PingGroup>();
        }
    }

    /// <summary>
    /// Will compile and return all matching unsynchronized ping data from the SQLite database.
    /// </summary>
    /// <returns></returns>
    public List<PingGroup> GetUnsynchronizedPings()
    {
        List<PingGroup> unsynchronizedPings = new List<PingGroup>();

        // TODO: Retrieve all unsynchronized pings from the SQLite database and return them to the caller.
        //var pGroup = db.Get<PingGroup>();
        //var pGroupList = db.List<PingGroup>();

        var pGroups = db.Table<PingGroup>();
        foreach (var pGroup in pGroups)
        {

        }

        return unsynchronizedPings;
    }

    /// <summary>
    /// Insert a single ping group into the SQLite ping database.
    /// </summary>
    /// <param name="pingGroup"></param>
    public void AddUnsynchronizedPing(PingGroup pingGroup)
    {
        // TODO: Add the passed ping group parameter into the SQLite database as new/unsynchronized.
        if (pingGroup != null)
        {
            // Add ping group to the database.
            // Add pings to the database.
            // Maybe one step, maybe done separately.
            // If done separately, must set Ping.PingGroupID to ID of original ping group.
        }
    }

    /// <summary>
    /// Mark all open and unsynchronized pings in the database as synchronized.
    /// </summary>
    public void SetAllPingsSynchronized()
    {
        db.DeleteAll<PingGroup>();
        db.DeleteAll<Ping>();
    }        
}
}

提前谢谢。

1 个答案:

答案 0 :(得分:1)

要将对象插入sqlite数据库,您可以使用以下内容:

void InsertPing(Ping p)
{
      db.Insert(p);
}


void InsertGroupOfPings(IEnumerable<Ping> pings)
{
   db.InsertAll(pings);
}

并检索对象(例如):

List<Ping> GetPings()
{  
// I assume here that Ping object has property named Synchronized
    return db.Query<Ping>("select * from Ping where Synchronized = 0");
}

SQLite库根据您的类定义创建其表,因此您可以考虑表中列之外的类的属性。