Browse Source

fixed add data by primary key

master
jkpete 2 months ago
parent
commit
521815053e
  1. 7
      addons/EGFramework/Module/GenerateTools/Templete/Godot/UI/EGodotSaveTable.cs
  2. 15
      addons/EGFramework/Module/SaveTools/Data/EGCsvSave.cs
  3. 27
      addons/EGFramework/Module/SaveTools/Data/EGDapper.cs
  4. 10
      addons/EGFramework/Module/SaveTools/Data/EGLiteDBSave.cs
  5. 1
      addons/EGFramework/Module/SaveTools/SaveToolsInterface.cs

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

@ -31,6 +31,7 @@ namespace EGFramework.UI @@ -31,6 +31,7 @@ namespace EGFramework.UI
}
this.Vertical = true;
CurrentDataKey = key;
EmptyData = typeof(T).EGenerateEmptyDictiontaryByType();
QueryPage.Register(() => QueryPageData<T>());
InitFunctionMenu();
InitTitle(typeof(T).EGenerateDictiontaryByType());
@ -50,6 +51,12 @@ namespace EGFramework.UI @@ -50,6 +51,12 @@ namespace EGFramework.UI
GD.Print(TableData.Count());
}
public override void OnAddData(Dictionary<string, object> data)
{
// base.OnAddData(data);
SaveData.AddData(CurrentDataKey, data);
}
public void ModifyData(Dictionary<string, object> eData)
{
string primaryKey = "";

15
addons/EGFramework/Module/SaveTools/Data/EGCsvSave.cs

@ -279,6 +279,21 @@ namespace EGFramework @@ -279,6 +279,21 @@ namespace EGFramework
this.WriteDataBlock(DefaultPath);
}
public void AddData(string datakey, Dictionary<string, object> data)
{
if(IsReadOnly){
throw new Exception("This file is readonly! can't set any data to file.");
}
string[] csvSet = new string[CsvDataHeader.Keys.Count()];
foreach(KeyValuePair<string,object> param in data){
if(CsvDataHeader.ContainsKey(param.Key)){
csvSet[CsvDataHeader[param.Key]] = param.Value.ToString();
}
}
CsvDataBlock.Add(csvSet);
this.WriteDataBlock(DefaultPath);
}
public int RemoveData(string dataKey, object id)
{
if (IsReadOnly)

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

@ -94,6 +94,33 @@ namespace EGFramework @@ -94,6 +94,33 @@ namespace EGFramework
int count = Connection.Execute(sql,data);
//EG.Print("count:" + count);
}
public void AddData(string dataKey,Dictionary<string, object> data)
{
if(data == null)
{
throw new ArgumentNullException(nameof(data));
}
string keySet = "";
string keySetParam = "";
foreach(KeyValuePair<string,object> param in data){
if (param.Key == "ID" || param.Key == "Id" || param.Key == "id"){
continue;
}
keySet += param.Key + ",";
if (param.Value is string)
{
keySetParam += "'" + param.Value + "',";
}
else
{
keySetParam += param.Value + ",";
}
}
keySet = keySet.TrimEnd(',');
keySetParam = keySetParam.TrimEnd(',');
EG.Print("insert into "+dataKey+"("+keySet+") values("+keySetParam+")");
int count = Connection.Execute("insert into "+dataKey+"("+keySet+") values("+keySetParam+")");
}
public int RemoveData(string dataKey, object id)
{

10
addons/EGFramework/Module/SaveTools/Data/EGLiteDBSave.cs

@ -83,6 +83,16 @@ namespace EGFramework @@ -83,6 +83,16 @@ namespace EGFramework
collection.Insert(data);
}
public void AddData(string dataKey, Dictionary<string, object> data)
{
ILiteCollection<BsonDocument> collection = Database.GetCollection(dataKey);
BsonDocument keyValuePairs = new BsonDocument();
foreach (var param in data) {
keyValuePairs.Add(param.Key, new BsonValue(param.Value));
}
collection.Insert(keyValuePairs);
}
public int RemoveData(string dataKey, object id)
{
ILiteCollection<BsonDocument> collection = Database.GetCollection(dataKey);

1
addons/EGFramework/Module/SaveTools/SaveToolsInterface.cs

@ -77,6 +77,7 @@ namespace EGFramework @@ -77,6 +77,7 @@ namespace EGFramework
void SetData<TData>(string dataKey,TData data,object id);
void AddData<TData>(string dataKey,TData data);
void AddData<TData>(string dataKey,IEnumerable<TData> data);
void AddData(string datakey, Dictionary<string, object> data);
int RemoveData(string dataKey,object id);
void UpdateData(string dataKey, Dictionary<string, object> data, object id);
void UpdateData<TData>(string dataKey,TData data,object id);

Loading…
Cancel
Save