Browse Source

fix sqliteSave's get key

master
jkpete 1 month ago
parent
commit
dedf4dce8e
  1. 6
      Example/SaveSystem/Script/ViewSaveSystem.cs
  2. 4
      addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotSaveTable.cs
  3. 2
      addons/EGFramework/Module/SaveTools/Data/EGDapper.cs
  4. 9
      addons/EGFramework/Module/SaveTools/Data/EGSqliteSave.cs

6
Example/SaveSystem/Script/ViewSaveSystem.cs

@ -27,6 +27,12 @@ namespace EGFramework.Examples.Test {
table.InitData<DataStudent>(dataStudents); table.InitData<DataStudent>(dataStudents);
EGSqliteSave SqliteTest = this.EGSave().Load<EGSqliteSave>("SaveData/test.db"); EGSqliteSave SqliteTest = this.EGSave().Load<EGSqliteSave>("SaveData/test.db");
// IEnumerable<string> dataBaseKey = SqliteTest.GetKeys();
// GD.Print(dataBaseKey);
// foreach (string data in dataBaseKey)
// {
// GD.Print(data);
// }
EGodotSaveTable PersonTable = container.CreateNode<EGodotSaveTable>("SQLite"); EGodotSaveTable PersonTable = container.CreateNode<EGodotSaveTable>("SQLite");
PersonTable.InitSaveData<EGSqliteSave>(SqliteTest); PersonTable.InitSaveData<EGSqliteSave>(SqliteTest);
PersonTable.InitData<DataPerson>("person"); PersonTable.InitData<DataPerson>("person");

4
addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotSaveTable.cs

@ -1,7 +1,4 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using Godot;
using MySqlX.XDevAPI.Relational;
namespace EGFramework.UI namespace EGFramework.UI
{ {
@ -49,7 +46,6 @@ namespace EGFramework.UI
} }
TableData = SaveData.GetPage<T>(CurrentDataKey, PageAdapter.CurrentPage, PageAdapter.PageLimit).EGenerateDictionaryByGroup(); TableData = SaveData.GetPage<T>(CurrentDataKey, PageAdapter.CurrentPage, PageAdapter.PageLimit).EGenerateDictionaryByGroup();
GD.Print(TableData.Count());
} }
public override void OnAddData(Dictionary<string, object> data) public override void OnAddData(Dictionary<string, object> data)

2
addons/EGFramework/Module/SaveTools/Data/EGDapper.cs

@ -203,7 +203,7 @@ namespace EGFramework
int count = Connection.Execute(sql, data); int count = Connection.Execute(sql, data);
} }
public IEnumerable<string> GetKeys() public virtual IEnumerable<string> GetKeys()
{ {
IEnumerable<string> result = Connection.Query<string>("show tables"); IEnumerable<string> result = Connection.Query<string>("show tables");
return result; return result;

9
addons/EGFramework/Module/SaveTools/Data/EGSqliteSave.cs

@ -1,5 +1,7 @@
using System; using System;
using System.Collections.Generic;
using System.IO; using System.IO;
using Dapper;
using Microsoft.Data.Sqlite; using Microsoft.Data.Sqlite;
namespace EGFramework{ namespace EGFramework{
@ -27,7 +29,7 @@ namespace EGFramework{
/// <param name="dataBaseName">name is the file path.such as SaveData.db</param> /// <param name="dataBaseName">name is the file path.such as SaveData.db</param>
public void InitDatabase(string dataBaseName) public void InitDatabase(string dataBaseName)
{ {
Connection = new SqliteConnection("Data Source="+dataBaseName+";Mode=ReadWriteCreate;"); // Open the connection: Connection = new SqliteConnection("Data Source=" + dataBaseName + ";Mode=ReadWriteCreate;"); // Open the connection:
try try
{ {
// Connection.Open(); // Connection.Open();
@ -39,5 +41,10 @@ namespace EGFramework{
ExceptionMsg = ex.ToString(); ExceptionMsg = ex.ToString();
} }
} }
public override IEnumerable<string> GetKeys()
{
IEnumerable<string> result = Connection.Query<string>("SELECT name FROM sqlite_schema WHERE type='table' AND name NOT LIKE 'sqlite_%'");
return result;
}
} }
} }
Loading…
Cancel
Save