none
有关在本地中存储大量“Key=Value”字符串信息的问题。 RRS feed

  • 问题

  • 有个项目需要在用户的电脑上存储大量如下格式的字符串:

    KeyName=Value

    每个条目最多500个字符,最多要存一万个左右这样的条目,并且要求能够方便根据KeyName找到对应条目进行更新或者删除。

    我不想用本地sql,请问还有什么好的解决方法?


    da jia hao!

    2019年9月30日 7:17

全部回复

  • Hi liubin,

    你可以使用SQLite来创建表存储键值对。详情请参考以下步骤。

    首先,使用 NuGet 安装 System.Data.SQLite。

    然后,在 App.config 中配置连接字符串。

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
    ...
      <connectionStrings>
         <add name="SQLiteDbContext" connectionString="Data Source=MyDatabase.sqlite" providerName="System.Data.SQLite.EF6" />
      </connectionStrings>
    </configuration>

    有关创建数据表和读写数据,请参考下面的示例。依旧使用的是T-SQL语句。

        SQLiteConnection.CreateFile("MyDatabase.sqlite");
    
        SQLiteConnection m_dbConnection = new SQLiteConnection("Data Source=MyDatabase.sqlite");
        m_dbConnection.Open();
    
        string sql = "create table testtb (key varchar(20), value int)";
    
        SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
        command.ExecuteNonQuery();
    
        sql = "insert into testtb (key, value) values ('K1', 10)";
    
        command = new SQLiteCommand(sql, m_dbConnection);
        command.ExecuteNonQuery();// read
        SQLiteCommand sqlCom = new SQLiteCommand("Select * From testtb", m_dbConnection);
    
        SQLiteDataReader sqlDataReader = sqlCom.ExecuteReader();
    
        while (sqlDataReader.Read())
        {
            Console.WriteLine(sqlDataReader.GetValue(0) + ", " + sqlDataReader.GetValue(1));
        }
    
        m_dbConnection.Close();

    它会在bin/Debug目录下生成.sqlite文件。

    Regards,

    Kyle


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2019年9月30日 7:58
    版主