You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
OMS.NET/DbClass/MapLayer.cs

142 lines
5.2 KiB
C#

using MySql.Data.MySqlClient;
namespace OMS.NET.DbClass
{
public class MapLayer
{
#region base
public long Id { get; set; }
public string Type { get; set; }
public string Members { get; set; }
public string Structure { get; set; }
public int Phase { get; set; }
public MapLayer()
{
this.Id = 0;
this.Type = "";
this.Members = "";
this.Structure = "";
this.Phase = 1;
}
public MapLayer(long id, string type, string members, string structure, int phase)
{
Id = id;
Type = type;
Members = members;
Structure = structure;
Phase = phase;
}
#endregion
public static void Add(MapLayer mapLayer)
{
using MySqlConnection connection = new(GlobalArea.ConnectionStringWithDbName);
connection.Open();
var query = @"INSERT INTO map_0_layer (type, members, structure, phase)
VALUES (@Type, @Members, @Structure, @Phase)";
using var command = new MySqlCommand(query, connection);
command.Parameters.AddWithValue("@Type", mapLayer.Type);
command.Parameters.AddWithValue("@Members", mapLayer.Members);
command.Parameters.AddWithValue("@Structure", mapLayer.Structure);
command.Parameters.AddWithValue("@Phase", mapLayer.Phase);
command.ExecuteNonQuery();
mapLayer.Id = command.LastInsertedId;
}
public static void Update(MapLayer mapLayer)
{
using MySqlConnection connection = new(GlobalArea.ConnectionStringWithDbName);
connection.Open();
var query = @"UPDATE map_0_layer SET type = @Type, members = @Members, structure = @Structure, phase = @Phase
WHERE id = @Id";
using var command = new MySqlCommand(query, connection);
command.Parameters.AddWithValue("@Id", mapLayer.Id);
command.Parameters.AddWithValue("@Type", mapLayer.Type);
command.Parameters.AddWithValue("@Members", mapLayer.Members);
command.Parameters.AddWithValue("@Structure", mapLayer.Structure);
command.Parameters.AddWithValue("@Phase", mapLayer.Phase);
command.ExecuteNonQuery();
}
public static void Delete(long id)
{
using MySqlConnection connection = new(GlobalArea.ConnectionStringWithDbName);
connection.Open();
var query = @"DELETE FROM map_0_layer WHERE id = @Id";
using var command = new MySqlCommand(query, connection);
command.Parameters.AddWithValue("@Id", id);
command.ExecuteNonQuery();
}
public static MapLayer? Get(long id)
{
using MySqlConnection connection = new(GlobalArea.ConnectionStringWithDbName);
connection.Open();
var query = @"SELECT id, type, members, structure, phase FROM map_0_layer WHERE id = @Id";
using var command = new MySqlCommand(query, connection);
command.Parameters.AddWithValue("@Id", id);
using var reader = command.ExecuteReader();
if (reader.Read())
{
return new MapLayer
{
Id = reader.GetInt64("id"),
Type = reader.GetString("type"),
Members = reader.GetString("members"),
Structure = reader.GetString("structure"),
Phase = reader.GetInt32("phase")
};
}
return null;
}
/// <summary>
/// 获取所有MapLayer数据
/// </summary>
/// <returns></returns>
public static List<MapLayer> GetMapLayerList()
{
List<MapLayer> mapLayerList = new();
using MySqlConnection connection = new(GlobalArea.ConnectionStringWithDbName);
connection.Open();
string query = "SELECT * FROM map_0_layer";
using var command = new MySqlCommand(query, connection);
using var reader = command.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
var mapLayer = new MapLayer
{
Id = reader.GetInt64("id"),
Type = reader.GetString("type"),
Members = reader.GetString("members"),
Structure = reader.GetString("structure"),
Phase = reader.GetInt32("phase")
};
mapLayerList.Add(mapLayer);
}
}
return mapLayerList;
}
/// <summary>
/// 指定是否将指定字段编码成base64格式 ???
/// </summary>
public static void ProcessMapLayers(List<MapLayer> mapLayers, bool encode = false)
{
mapLayers.ForEach(mapLayer =>
{
if (encode)
{
}
else
{
}
});
}
}
}