管道基础大数据平台系统开发-【CS】-ExportMap
1
13693261870
2023-01-01 6a1991b477cd7f719d7ad486b6ad2ab170c91425
1
已添加3个文件
已修改2个文件
294 ■■■■■ 文件已修改
DataLoader/CS/Importor.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataLoader/CS/ModelHandler.cs 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataLoader/CS/PostgreHelper.cs 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataLoader/DataLoader.csproj 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataLoader/MainWindow.xaml.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataLoader/CS/Importor.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DataLoader.CS
{
    public class Importor
    {
        public static void Import(ObservableCollection<ViewData> viewDatas, string source, string target)
        {
        }
    }
}
DataLoader/CS/ModelHandler.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,83 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace DataLoader.CS
{
    public class ModelHandler
    {
        /// <summary>
        /// å¡«å……对象列表
        /// </summary>
        public static List<T> FillModel<T>(DataTable dt) where T : new()
        {
            if (dt == null || dt.Rows.Count == 0)
            {
                return null;
            }
            List<T> list = new List<T>();
            BindingFlags flag = BindingFlags.Public | BindingFlags.IgnoreCase | BindingFlags.Instance;
            PropertyInfo[] pis = typeof(T).GetProperties();
            foreach (DataRow dr in dt.Rows)
            {
                T t = new T();
                foreach (PropertyInfo pi in pis)
                {
                    object val = dr[pi.Name] == DBNull.Value ? null : dr[pi.Name];
                    t.GetType().GetProperty(pi.Name, flag).SetValue(t, val, null);
                }
                list.Add(t);
            }
            return list;
        }
        /// <summary>
        /// å¡«å……DataTable
        /// </summary>
        public static DataTable FillDataTable<T>(List<T> list) where T : new()
        {
            if (list == null || list.Count == 0)
            {
                return null;
            }
            DataTable dt = CreateDataTable<T>();
            PropertyInfo[] pis = typeof(T).GetProperties();
            foreach (T t in list)
            {
                DataRow dr = dt.NewRow();
                foreach (PropertyInfo pi in pis)
                {
                    dr[pi.Name] = pi.GetValue(t, null);
                }
            }
            return dt;
        }
        /// <summary>
        /// åˆ›å»ºDataTable
        /// </summary>
        public static DataTable CreateDataTable<T>() where T : new()
        {
            DataTable dt = new DataTable(typeof(T).Name);
            PropertyInfo[] pis = typeof(T).GetProperties();
            foreach (PropertyInfo pi in pis)
            {
                dt.Columns.Add(new DataColumn(pi.Name, pi.PropertyType));
            }
            return dt;
        }
    }
}
DataLoader/CS/PostgreHelper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,174 @@
using Npgsql;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.Common;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace DataLoader.CS
{
    public enum DbEnum
    {
        langfang = 0,
        postgis = 1,
        postgres = 2
    }
    /// <summary>
    /// Postgre帮助类
    /// </summary>
    public class PostgreHelper
    {
        private const string StrRegex = @"<[^>]+?style=[\w]+?:expression\(|\b(alert|confirm|prompt)\b|^\+/v(8|9)|<[^>]*?=[^>]*?&#[^>]*?>|\b(and|or)\b.{1,6}?(=|>|<|\bin\b|\blike\b)|/\*.+?\*/|<\s*script\b|<\s*img\b|\bEXEC\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)";
        private string conStr = null;
        public PostgreHelper(DbEnum db)
        {
            string str = ConfigurationManager.AppSettings["pgConn"];
            this.conStr = string.Format(str, db.ToString());
        }
        /// <summary>
        /// è¿žæŽ¥å­—符串
        /// </summary>
        public String ConStr
        {
            get
            {
                return this.conStr;
            }
        }
        /// <summary>
        /// èŽ·å–DataTable
        /// </summary>
        public DataTable GetDataTable(string sql, params DbParameter[] args)
        {
            using (NpgsqlConnection con = new NpgsqlConnection(ConStr))
            {
                if (con.State != ConnectionState.Open)
                {
                    con.Open();
                }
                using (NpgsqlCommand cmd = new NpgsqlCommand(sql, con))
                {
                    if (args != null)
                    {
                        foreach (DbParameter arg in args)
                        {
                            //arg.ParameterName = arg.ParameterName.Replace("@", ":");
                            cmd.Parameters.Add(arg);
                        }
                    }
                    using (NpgsqlDataAdapter adapter = new NpgsqlDataAdapter(cmd))
                    {
                        DataTable dt = new DataTable();
                        adapter.Fill(dt);
                        return dt;
                    }
                }
            }
        }
        /// <summary>
        /// èŽ·å–è®°å½•æ•°
        /// </summary>
        public int GetCount(string sql, params DbParameter[] args)
        {
            using (NpgsqlConnection con = new NpgsqlConnection(ConStr))
            {
                if (con.State != ConnectionState.Open)
                {
                    con.Open();
                }
                using (NpgsqlCommand cmd = new NpgsqlCommand(sql, con))
                {
                    if (args != null)
                    {
                        foreach (DbParameter arg in args)
                        {
                            //arg.ParameterName = arg.ParameterName.Replace("@", ":");
                            cmd.Parameters.Add(arg);
                        }
                    }
                    object obj = cmd.ExecuteScalar();
                    return obj == null ? 0 : Convert.ToInt32(obj);
                }
            }
        }
        public Object GetScalar(string sql, params DbParameter[] args)
        {
            using (NpgsqlConnection con = new NpgsqlConnection(ConStr))
            {
                if (con.State != ConnectionState.Open)
                {
                    con.Open();
                }
                using (NpgsqlCommand cmd = new NpgsqlCommand(sql, con))
                {
                    if (args != null)
                    {
                        foreach (DbParameter arg in args)
                        {
                            cmd.Parameters.Add(arg);
                        }
                    }
                    return cmd.ExecuteScalar();
                }
            }
        }
        /// <summary>
        /// æ‰§è¡ŒSQL,返回影响行数
        /// </summary>
        public int ExecuteNonQuery(string sql, params DbParameter[] args)
        {
            using (NpgsqlConnection con = new NpgsqlConnection(ConStr))
            {
                if (con.State != ConnectionState.Open)
                {
                    con.Open();
                }
                using (NpgsqlCommand cmd = new NpgsqlCommand(sql, con))
                {
                    if (args != null)
                    {
                        foreach (DbParameter arg in args)
                        {
                            //arg.ParameterName = arg.ParameterName.Replace("@", ":");
                            cmd.Parameters.Add(arg);
                        }
                    }
                    return cmd.ExecuteNonQuery();
                }
            }
        }
        /// <summary>
        /// æ£€æŸ¥å­—符串
        /// </summary>
        public static bool CheckStr(string input)
        {
            return Regex.IsMatch(input, StrRegex, RegexOptions.IgnoreCase);
        }
    }
}
DataLoader/DataLoader.csproj
@@ -48,7 +48,14 @@
    <Reference Include="CefSharp.Wpf, Version=108.4.130.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=MSIL">
      <HintPath>..\packages\CefSharp.Wpf.108.4.130\lib\net452\CefSharp.Wpf.dll</HintPath>
    </Reference>
    <Reference Include="Mono.Security">
      <HintPath>..\JavaCode\DLL\Mono.Security.dll</HintPath>
    </Reference>
    <Reference Include="Npgsql">
      <HintPath>..\JavaCode\DLL\Npgsql.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.configuration" />
    <Reference Include="System.Data" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
@@ -80,8 +87,11 @@
      <DependentUpon>App.xaml</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
    <Compile Include="CS\Importor.cs" />
    <Compile Include="CS\Main.cs" />
    <Compile Include="CS\ModelHandler.cs" />
    <Compile Include="CS\NtstWeb.cs" />
    <Compile Include="CS\PostgreHelper.cs" />
    <Compile Include="CS\ViewData.cs" />
    <Compile Include="LoginWin.xaml.cs">
      <DependentUpon>LoginWin.xaml</DependentUpon>
DataLoader/MainWindow.xaml.cs
@@ -122,8 +122,14 @@
        // å¯¼å…¥
        private void Import_MouseLeftButtonDown(object sender, RoutedEventArgs e)
        {
            viewDatas.Add(new ViewData() { ID = 1, FilePath = "c:\\", Status = "加载中" });
            viewDatas.Add(new ViewData() { ID = 2, FilePath = "c:\\", Status = "完成" });
            viewDatas.Clear();
            Dispatcher.Invoke(new Action(delegate
            {
                this.btnImport.IsEnabled = false;
                Importor.Import(viewDatas, SourcePath, TargetPath);
                this.btnImport.IsEnabled = true;
            }));
        }
    }
}