【问题标题】:Inserting Data into SQLite Database Using C#使用 C# 将数据插入 SQLite 数据库
【发布时间】:2015-04-11 07:11:52
【问题描述】:

我在Visual Studio 中创建一个SQLite 数据库,XamarinC# 中。

请注意,这仅适用于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>();
    }        
}
}

提前谢谢你。

【问题讨论】:

    标签: c# android database sqlite xamarin


    【解决方案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 库根据您的类定义创建其表,因此您可以将类的属性视为表中的列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-24
      • 1970-01-01
      • 1970-01-01
      • 2017-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多