From 33d81a2224ff1327f134374a80f7d9f681ba3883 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期一, 08 一月 2024 09:56:35 +0800 Subject: [PATCH] 添加Img的sqlite操作类 --- JiangSu/JiangSu.csproj | 2 + JiangSu/cs/ImgPgDAL.cs | 73 ++++++++++++++++++++++++++++++++++++ JiangSu/Models/ImgPg.cs | 22 +++++++++++ JiangSu/cs/Tools.cs | 11 ++++- JiangSu/Controllers/ImgController.cs | 2 JiangSu/Models/Img.cs | 6 ++ JiangSu/App_Data/js.db | 0 7 files changed, 112 insertions(+), 4 deletions(-) diff --git a/JiangSu/App_Data/js.db b/JiangSu/App_Data/js.db index d7a6456..5da0a6d 100644 --- a/JiangSu/App_Data/js.db +++ b/JiangSu/App_Data/js.db Binary files differ diff --git a/JiangSu/Controllers/ImgController.cs b/JiangSu/Controllers/ImgController.cs index a6da6c5..babafb6 100644 --- a/JiangSu/Controllers/ImgController.cs +++ b/JiangSu/Controllers/ImgController.cs @@ -125,7 +125,7 @@ Img img = new Img(); img.name = info.Name; img.path = uploadPath + "\\" + newName; - img.geom = Tools.GetImgGps(f.LocalFileName); + //img.geom = Tools.GetImgGps(f.LocalFileName); if (!File.Exists(newFile)) File.Move(f.LocalFileName, newFile); int rows = ImgDAL.Insert(img); diff --git a/JiangSu/JiangSu.csproj b/JiangSu/JiangSu.csproj index 273178e..c027fa8 100644 --- a/JiangSu/JiangSu.csproj +++ b/JiangSu/JiangSu.csproj @@ -152,6 +152,7 @@ <Compile Include="cs\PostgreHelper.cs" /> <Compile Include="cs\SQLiteHelper.cs" /> <Compile Include="cs\Tools.cs" /> + <Compile Include="cs\ImgPgDAL.cs" /> <Compile Include="Global.asax.cs"> <DependentUpon>Global.asax</DependentUpon> </Compile> @@ -159,6 +160,7 @@ <Compile Include="Models\Grid.cs" /> <Compile Include="Models\Img.cs" /> <Compile Include="Models\Model.cs" /> + <Compile Include="Models\ImgPg.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> </ItemGroup> <ItemGroup> diff --git a/JiangSu/Models/Img.cs b/JiangSu/Models/Img.cs index 16c3c03..e29ef12 100644 --- a/JiangSu/Models/Img.cs +++ b/JiangSu/Models/Img.cs @@ -17,6 +17,10 @@ public string json { set; get; } - public string geom { set; get; } + public double x { set; get; } + + public double y { set; get; } + + public double z { set; get; } } } diff --git a/JiangSu/Models/ImgPg.cs b/JiangSu/Models/ImgPg.cs new file mode 100644 index 0000000..224a902 --- /dev/null +++ b/JiangSu/Models/ImgPg.cs @@ -0,0 +1,22 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace JiangSu.Models +{ + public class ImgPg + { + public ImgPg() { } + + public long id { set; get; } + + public string name { set; get; } + + public string path { set; get; } + + public string json { set; get; } + + public string geom { set; get; } + } +} diff --git a/JiangSu/cs/ImgPgDAL.cs b/JiangSu/cs/ImgPgDAL.cs new file mode 100644 index 0000000..e8dab03 --- /dev/null +++ b/JiangSu/cs/ImgPgDAL.cs @@ -0,0 +1,73 @@ +锘縰sing JiangSu.Models; +using Npgsql; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.Common; +using System.Linq; +using System.Web; + +namespace JiangSu.cs +{ + public class ImgPgDAL + { + public static List<ImgPg> SelectByPage(string name, int pageSize = 10, int pageIndex = 1) + { + bool flag = string.IsNullOrWhiteSpace(name); + string sql = string.Format("select id, name, path, json, st_astext(geom) geom from sd.img {0} order by id limit {1} offset {2}", flag ? "" : "where upper(name) like @name", pageSize, pageSize * (pageIndex - 1)); + + DataTable dt = flag ? Tools.PGHelper.GetDataTable(sql) : Tools.PGHelper.GetDataTable(sql, new NpgsqlParameter("@name", "%" + name.Trim().ToUpper() + "%")); + if (null == dt || dt.Rows.Count == 0) + { + return null; + } + + return ModelHandler.FillModel<ImgPg>(dt); + } + + public static ImgPg SelectById(long id) + { + string sql = "select id, name, path, json, st_astext(geom) geom from sd.img where id = @id"; + + DbParameter param = new NpgsqlParameter("@id", id); + + DataTable dt = Tools.PGHelper.GetDataTable(sql, param); + if (null == dt || dt.Rows.Count == 0) + { + return null; + } + + var list = ModelHandler.FillModel<ImgPg>(dt); + + return null == list || list.Count == 0 ? null : list[0]; + } + + public static int DeleteByIds(List<int> ids) + { + string str = string.Join(",", ids.ToArray()); + string sql = string.Format("delete from sd.img where id in ({0})", str); + + return Tools.PGHelper.ExecuteNonQuery(sql); + } + + public static int Insert(ImgPg img) + { + string geom = string.IsNullOrWhiteSpace(img.geom) ? "null" : string.Format("ST_GeomFromText('{0}')", img.geom); + string sql = string.Format("insert into sd.img (name, path, json, geom) values (@name, @path, @json, {0}) returning id", geom); + DbParameter[] sqlParams = Tools.GetPGParams<ImgPg>(sql, img); + + object obj = Tools.PGHelper.GetScalar(sql, sqlParams); + + return null == obj ? 0 : Convert.ToInt32(obj); + } + + public static int UpdateById(ImgPg img) + { + string geom = string.IsNullOrWhiteSpace(img.geom) ? "" : string.Format(", geom = ST_GeomFromText('{0}')", img.geom); + string sql = string.Format("update sd.img set name = @name, path = @path, json = @json{0} where id = @id", geom); + DbParameter[] sqlParams = Tools.GetPGParams<ImgPg>(sql, img); + + return Tools.PGHelper.ExecuteNonQuery(sql, sqlParams); + } + } +} diff --git a/JiangSu/cs/Tools.cs b/JiangSu/cs/Tools.cs index c4e9961..2229e8b 100644 --- a/JiangSu/cs/Tools.cs +++ b/JiangSu/cs/Tools.cs @@ -131,7 +131,7 @@ /// <summary> /// 鑾峰彇鍥剧墖鐨凣PS淇℃伅 /// </summary> - public static string GetImgGps(string path) + public static List<string> GetImgGps(string path) { Image img = null; try @@ -163,7 +163,7 @@ } } - return string.Format("POINT Z ({0})", string.Join(" ", list.ToArray())); + return list; } catch (Exception ex) { @@ -176,6 +176,13 @@ } } + public static string GetImgPointZ(string path) + { + List<string> list = GetImgGps(path); + + return null == list ? null : string.Format("POINT Z ({0})", string.Join(" ", list.ToArray())); + } + /// <summary> /// 鑾峰彇GPS鍊� /// </summary> -- Gitblit v1.9.3