经年累月前方写的一个Access实体类生产工具

偶翻至先写的小物,数据表实体类生成!只写了Access数据库,等前生时空试着瞧写一个匹配市面主流数据库的!

图片 1

代码如下:

近来,我们单位为越来越贯彻落实习近平总书记关于作风建设永远以中途的指示精神,经研究决定:在元旦、春节两节里进行整风肃纪的干活要求,严格执行每日登录、签退的“四签制”。

 static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }

签到办事由办公室具体承担,并责令专人现场监控,严禁与办公室相互代签、补签,严格执行请销假制度,要于报到规定时外将早已批复假条到回办公室。

下是主窗体代码:

 
考勤结果严禁将虚做假,一经发现,本人和所于机关在赏发放与评优评先一票否决。考勤结果用因为日公示、月考核的形式反映,接受全体人员的并监督,单位以结合考核组随时开展的抽查。

 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        #region 全部变量定义
        bool Canmove = false;
        Point Pf;
       // string ConnectionString = “”;
        #endregion
        void WriteLog(string logstr)
        {
            textBox2.Text += logstr+”\r\n”;
        }
        #region 测试数据库是否能够连上
        void TestConnection(string str)
        {
            using (OleDbConnection con = new OleDbConnection(str))
            {
                textBox2.ResetText();
                try
                {
                    WriteLog(“尝试打开数据库链接……”);
                    con.Open();
                    WriteLog(“数据库链接测试成功!”);
                }
                catch (Exception ex)
                {
                    WriteLog(“数据库链接测试失败:”+ex.Message);
                }
                finally
                {
                    WriteLog(“关闭数库链接….”);
                    con.Close();
                }
            }

  当这个消息在工作群里公布之时节,群情激愤又隐忍,
说心理不抵制拒那是休容许的。单位多之是拖家带口的孩子,原来的上班时间相对灵活与松闲,一下子更换的乱忙碌起来,日工作时间持续拉,相对的工资收入并未出外移,员工间低落的抵触情绪蔓延扩散开来,迅速相互传染。

        }
        #endregion
        #region 取得数据库的表名
        string[] GetTableNames(string str)
        {
            using (OleDbConnection con = new OleDbConnection(str))
            {
                DataTable dt = new DataTable();
               
                    try
                    {
                        con.Open();
                        WriteLog(“开始打数据库获得有表名!”);
                        dt =
con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new Object[] { null,
null, null, “table” });
                        int n = dt.Rows.Count;
                        string[] strTable = new string[n];
                        int m = dt.Columns.IndexOf(“TABLE_NAME”);
                        for (int i = 0; i < n; i++)
                        {
                            DataRow m_DataRow = dt.Rows[i];
                            strTable[i] =
m_DataRow.ItemArray.GetValue(m).ToString();
                        }
                        WriteLog(“成功收获富有表名!”);
                        return strTable;
                       
                    }
                    catch (Exception ex)
                    {
                        WriteLog(“获取表名出错:”+ex.Message);
                        return null;
                    }
                    finally
                    {
                        con.Close();
                        dt.Dispose();
                    }
                }
           
        }
        #endregion
        #region 根据表名取得表中每个字段及相应数据类型
        Dictionary<string ,string > GetCoulmNams(string
constr,string TableName)
        {
            using (OleDbConnection con = new OleDbConnection(constr))
            {
                DataTable dt = new DataTable();
                try
                {
                   
WriteLog(“根据表名称得到有字段及其相应之数据类型!”);
                    con.Open();
                  
                    dt =
con.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new Object[] { null,
null, TableName, null });
                   // dataGridView1.DataSource = dt;
                    int n = dt.Rows.Count;
                    Dictionary<string, string> CoulnmsInfo = new
Dictionary<string, string>();
                    int m = dt.Columns.IndexOf(“COLUMN_NAME”);
                    int j = dt.Columns.IndexOf(“DATA_TYPE”);
                   
                    for ( int i = 0; i < n; i++)
                    {
                        DataRow m_DataRow = dt.Rows[i];
                       
CoulnmsInfo.Add(m_DataRow.ItemArray.GetValue(m).ToString(),GetType((int)m_DataRow.ItemArray.GetValue(j)));
                        WriteLog(“获取字段” +
m_DataRow.ItemArray.GetValue(m).ToString() + “的类型码成功!”);
                    }
                    return CoulnmsInfo;
                }
                catch (Exception ex)
                {
                    WriteLog(“获取字段类型出错:”+ex.Message);
                    return null;
                }
                finally
                {
                    con.Close();
                    dt.Dispose();
                }
            }
        }
#endregion
        #region 判断字段是否为主键
        bool IsprimaryKeys(string tbname,string Name)
        {
            OleDbConnection connection = new
OleDbConnection(textBox1.Text.Trim());
            connection.Open();
           // DataTable schemaColumns =
connection.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new string[] {
null, null,tbname, null });
            DataTable primaryKeys =
connection.GetOleDbSchemaTable(OleDbSchemaGuid.Primary_Keys, new
string[] { null, null, tbname });
            connection.Close();
            int j = -1;
            foreach (DataRow row in primaryKeys.Rows)
            {
                string fname=row[“COLUMN_NAME”].ToString();
                if (fname  == Name)
                {
                    j++;
                }
                            
             }
            if (j>=0)
            { return true; }
            else
            {
                return false;
            }
           
        }
        #endregion
        #region 数据库类型以及C#屡遭类型转换
        string  GetType(int num)
        {
          
            switch (num)
            {
              
                case 2:
                    return “Int16”;
                case 3:
                    return “int”;
                case 4:
                    return “Single”;
                   
                case 5:
                    return “Double”;
                case 6:
                case 131:
                    return “decimal”;
                case 7:
                    return “DateTime”;
                case 11:
                    return “bool”;

直至签到的时节每个人明里暗里对沿监督的职工多抱怨一番,而那些奉命做监督工作的老干部也委屈的卷了一肚子火,立马就在做事群发声明诉苦:新的考情制度是管理者决定的,也都提前半龙在群里公示过了,有眼光请找领导反映,我手机24钟头开机,有来不及交假条的景为可提前打电话沟通啊,我只是按照制度遵循要求工作,不是本身个人的表现,请不要管心思流露到本人这里,觉得我开的糟糕,可以查找领导换人来干,谢谢大家了解和相当!

                case 18:
                    return “byte”;
                case 130:
                    return “string”;
                case 128:
                    return “Binary”;
                case 129:
                    return “char”;
                case 0:
                case 8: 
                case 9:
                case 10:
                case 12:
                case 13:
                case 14:
                case 15:
                case 16:
                case 17:
                case 19:
                case 20:
                case 21:
                case 64:
                case 72:
                case 132:
                case 133:
                case 134:
                case 135:
                case 136:
                case 138:
                case 139:
                case 200:
                case 203:
                case 204:
                case 205:
                    return “”;

而看,面对工作上正好起举办的一样桩新制度,提高效率的用意小还非显现,鼎沸的埋怨情绪可已经使好换得阴暗和致命,剥夺了若本来兴许在工作中享有的恺。

                default: return null ;
                   
                   
            }
         
        }
       #endregion
        #region 写文件
        void WriteFile(string NameSpaces,string FileName1,string
FileName2,IDbConnection dbconnect)
        {
            if (File.Exists(FileName1  + “.cs”))
            {
                File.Delete(FileName1 + “.cs”);
            }
            if (File.Exists(FileName2 + “.cs”))
            {
                File.Delete(FileName2 + “.cs”);
            }
            WriteLog(“创建文件!”);
            FileInfo f = new FileInfo(FileName1 + “.cs”);
            FileInfo f1=new FileInfo (FileName2 + “.cs”);
            StreamWriter sw1 = f1.AppendText();
            StreamWriter sw = f.AppendText();
            try
            {
                WriteLog(“一.描绘文件头:”);
                WriteLog(“1.状DB类文件头!”);
                sw1.WriteLine(“using System.Data;”);
                sw1.WriteLine(“using System.Data.Linq;”);
                sw1.WriteLine(“using System.Data.OleDb;”);
                sw1.WriteLine(“using System.Diagnostics;”);
                sw1.WriteLine(“namespace “+NameSpaces );
                sw1.WriteLine(“{“);
                sw1.WriteLine(“public class DB”);
                sw1.WriteLine(“{“);
                sw1.WriteLine(“DataContext dc;”);
                WriteLog(“2.勾实体类公事头!”);
                sw.WriteLine(“using System.Data.Linq.Mapping;”);
                sw.WriteLine(“namespace\t”+NameSpaces );
                sw.WriteLine (“{“);
                //一下因说明生产对应之类似,根据表中的字段生产对应属性;
                string[] tables =
GetTableNames(textBox1.Text.Trim());
                int l = 1;
                WriteLog(“二.描绘文件内容:”);
                foreach (string str in tables)
                {
                    WriteLog(“开始勾画序” + l +
“张表(“+str+”)的实体类!”);
                               
                    //根据表明写类名
                    sw.WriteLine(“[Table (Name=\””+str+”\”)]”);
                    sw.WriteLine(“public class ” + str);
                    sw.WriteLine(“{“);
                    Dictionary<string, string> di =
GetCoulmNams(textBox1.Text, str);
                    foreach (KeyValuePair<string, string> value in
di)
                    {
                       

高晓松已说了,生活不断眼前之苟且,还有海外的诗和田野。

                        WriteLog(“开始写字段:” + value.Key );
                        if (IsprimaryKeys(str, value.Key) == true)
                        {
                            sw.WriteLine(“[Column(IsPrimaryKey
=true)]”);
                        }
                        else
                        {
                            sw.WriteLine(“[Column]”);
                        }
                        sw.WriteLine(“public ” + value.Value + ” ” +
value.Key + “{get;set;}”);
                                         

现实生活中,我们大部分总人口再次丰富的时毕竟处在跨不过去的一般性苟且若琐碎的当儿中,至于明丽的诗文与想之塞外遥不可及。

                    }
                    sw.WriteLine(“}”);
                    WriteLog(“写程序” + l + “张表的阐明!”);
                    sw1.WriteLine(“public Table<” + str + “>” +
str + “;”);
                    l++;      

日复一日的再次着单调乏味的在,吃喝拉撒睡周而复始,两碰同样丝仍部就班循规蹈矩,忙不结束的家业,操不完心的男女,应付不了事的风世故,毫无激情波澜不惊的干活,浑浑噩噩麻木不仁的存。这些发生没有出是公既的状态或者还正在经历在的面貌!

                }
               

此前的自吗早就曾在这样的光阴里隐约困扰,后来发觉,普普通通的光景尽管被无了波澜壮阔的答案,但是,时光自发生积少成多的力量,在某转角给闹惊喜。

                WriteLog(“写DB类的初始化方法!”);
                sw1.WriteLine(“public DB(IDbConnection con) “);
                sw1.WriteLine(“{“);
                sw1.WriteLine(“dc = new DataContext(con);”);
                int n=1;
                foreach(string str in tables)
                {
                    WriteLog(“建立第” + n + “张表的Object对象!”);
                    sw1.WriteLine(str
+”=dc.GetTable<“+str+”>();”);
                    n++;
                }
                WriteLog(“三.形容文件尾:”);
                sw.WriteLine(“}”);
                sw1.WriteLine(“}”);
                sw1.WriteLine(“}”);
                sw1.WriteLine(“}”);
                WriteLog(“生成文书成功!”);
                ProcessStartInfo psi = new ProcessStartInfo();
                psi.FileName = “explorer”;
                psi.Arguments = “/e,/select,” + Application.StartupPath

以此次单位报到事件备受本人要好不怕立调整了情怀,且设计出了承诺本着艺术,丝毫连从未让它影响从而感觉特别之心灰意冷。

  • FileName1+”.cs”;
                    Process.Start(psi);
                  

干活时提前,再使先开车上下班都不现实,仅每次堵在半路与搜索空位停车的时日不知不觉就为吃了诸多,而且长期开车后少运动,脂肪开始囤积,健康状况也会大打折扣,养的像温室里的花朵弱不禁风,经不得寒冬酷暑的历练。

            }
                catch (Exception ex)
            {
                    WriteLog(“生成文书发出错误:”+ex.Message);
             }
            finally
            {
                sw.Close();
                sw1.Close();
            }
        }

更改坐公交车,而公交车出行是发切实时刻与现实性站点的,每天运动至离家最近公交站的档口就是温馨的健步时间,一天四道刚好可以凑合到10000步,对身体是个最好好锻炼的门道。

        #endregion
        #region 测试链接按钮单击事件
        private void button1_Click(object sender, EventArgs e)
        {
            WriteLog(“测试链接按钮单击”);
            TestConnection(textBox1.Text.Trim());
        }
        #endregion
        #region 生成.cs文件按钮单击事件
        private void button2_Click(object sender, EventArgs e)
        {
            textBox2.ResetText();
            WriteLog(“生成.cs文件按钮单击”);
            string namespaces = Interaction.InputBox(“请输入命名空间!”,
“输入命名空间”, “gaofajin”,Control.MousePosition.X
-200,Control.MousePosition.Y-100);
            if (namespaces.Length == 0)
            {
                WriteLog(“没有输入命名空间,生成文书操作无法持续!”);
                return;
            }
            string filename1 =
Interaction.InputBox(“请输入实体类文件名称!”, “输入文件称”,
“gaofajinmodel”, Control.MousePosition.X-200,
Control.MousePosition.Y-100);
            if (namespaces.Length == 0)
            {
               
WriteLog(“没有输入实体类公事称!生成文书操作无法持续!”);
                return;
            }
            string filename2 =
Interaction.InputBox(“请输入DB类文件名称!”, “输入文件称”, “gaofajinDB”,
Control.MousePosition.X -200, Control.MousePosition.Y-100);
            if (namespaces.Length == 0)
            {
               
WriteLog(“没有输入DB类文件称!生成文书操作无法继续!”);
                return;
            }
            IDbConnection c = new
OleDbConnection(textBox1.Text.Trim());
            WriteFile(namespaces,filename1,filename2,c);      
          
        }
        #endregion
        #region 退出程序按钮单机时间
        private void button3_Click(object sender, EventArgs e)
        {
            Close();
        }
        #endregion
        #region 使无边框的窗体可以拖动
        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            if (Canmove == true && e.Button == MouseButtons.Left)
            {
                Point p = Control.MousePosition;
                p.Offset(Pf);
                Location = p;

每天去单位的时间提前了,在做事完毕而尚没有到达签到日的一半时里,变成了温馨之开卷日,这些零碎时间的迅速利用也本着协调之体味、格局、思维来深好之晋级促进作用。

            }
        }

以生存之汪洋大海遭到,我们每天起早摸黑忙忙碌碌,事事如意、一帆风顺地行驶往岸边的工作是甚少的。

        private void Form1_MouseUp(object sender, MouseEventArgs e)
        {
            Canmove = false;
        }

每当上学及遇到困难,工作着遭挫折,生活上受不幸,或事业及涉挫折,这些还来或产生,那么当我们身处在这些不可避免鸡零狗碎的苟且中,该如何对待呢?

        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                Canmove = true;
                Pf = new Point(-e.X, -e.Y);
            }
        }
        #endregion
        private void Form1_FormClosing(object sender,
FormClosingEventArgs e)
        {
            WriteLog(“程序正在给关闭!”);
            if (DialogResult.OK != MessageBox.Show(“确定退出程序也?”,
“退出程序”, MessageBoxButtons.OKCancel, MessageBoxIcon.Question))
            {
                e.Cancel = true;
            }
            else { e.Cancel = false; }
        }

实则,只要你知的差不多学习多琢磨多改善,你虽可知淌过苟且,寻找到日常里之诗文与角,以下建议您不妨参考:

        private void button4_Click(object sender, EventArgs e)
        {
            textBox1.Text = ShowConnectDialog();
        }
        string ShowConnectDialog()
        {
            string ConnectionString = string.Empty;
            DataConnectionDialog dcd = new DataConnectionDialog();
            dcd.DataSources.Add(DataSource.AccessDataSource);
            dcd.DataSources.Add(DataSource.OdbcDataSource);
            dcd.DataSources.Add(DataSource.OracleDataSource);
            dcd.DataSources.Add(DataSource.SqlDataSource);
            dcd.DataSources.Add(DataSource.SqlFileDataSource);
           
            if (DialogResult.OK ==DataConnectionDialog.Show(dcd))
            {
                ConnectionString = dcd.ConnectionString;
            }
            return ConnectionString;
        }
    }

首先,转换心情,乐观面对,遇事如管制身材同管理好温馨之心情。

 

当众人在冲一个风波及一个波所招的结果的当儿,常常会做出主观的判断,并且根据自己的判定来总结出对未来底意料,规划协调的下同样管辖行动,这就是是思想方式对人类行为的企图。

主动心理学多年底钻研表明,拥有不同思考方式的人以面对同样的善事还是坏事时,会有不行不同之诠释思维,从而得出不同的定论,最终影响及我们的人生选择。

生活被既会发出失败、有苦闷,人尽管不容许永远处于好之心态之中,当然我们吧会见起消极的情绪,一个思维成熟之总人口连无是从来不悲伤或失落之心气,只是善于调节罢了。

《杨澜说》里面涉及,管理情绪以及身材的保管类,需要到的计划同日积月累的坚持,会管理好和谐的情绪,才会在生活中能够游刃有后路面对好的内心。

下,从天经地义改变的总生活圈子又找那些在发生的、能带领不同感受的微观着陆点。

日常生活中,看似我们若钟表般日复一日每日大概机械的还着,进行的种类或还差不多,但实质上我们的莫过于关注点并无见面在和一个地方,当然心情感受与认知呢各不相同。

多年来起时空针对自己平宏观之活做了份记录,虽然要流水帐一般,但自身发现这些每天的记录着单独见面指向平宗事展开详细描述并起深刻理解体会,而就无异桩事每天都见面是殊点。

准,星期一自身关注点放在了出行交通上,星期二关注点就厕了单位某项工作的人际沟通上,星期三关注点放在感受新读的一律本书及……

当一个人注意力从零碎的表象上相差,他即使可知更多关心身边的环境,也能满怀感恩关心周围的万事,例如,季节的滚动,他人的易。

咱们或我们友好,却俨然发现了那些根本都怀有可不够发现的东西,换句话说,我们当然就是有能够快乐生活之力量与潜力,而之前是被忽略了或者从未曾意识及。

末尾,多给好增添部分对准活之仪式感。

人生发生成百上千业务还心有余而力不足由咱们决定,比如说原生家庭,比如说天气,但是人生被还有一些转业是出于咱们后期管理暨掌控的,比如说我们怎样错过做事跟生存,我们怎么跟家人朋友相处,比如仪式感。

以自家好之家园里,不肯定有着的节日都过,但子女与前辈的寿辰是一定过之,买生日蛋糕,全家人围桌而以,唱生日祝福歌,还起卡祝福语,老人说些鼓励后辈的殷切期盼的语句,孩子等说些祝老人福寿安康的吉祥话,彼此在高兴温馨之空气里都觉得到盈了幸福感。

咱总在追求幸福,却无明了怎么打造幸福。总是无暇,看不到风吹云动,闻不到花香暗涌,只顾低头匆忙赶路,日复一日掰着指头数,眼前之若且啥时是个子。

活遭多的净是诺付
,没有仪式没有红包,没有惊喜没有各种各样的小确幸,你是不是当了在那么将就的在,

庆典感之与幸福感,关系甚密,相生相伴。

看同样集电影、听一不行音乐会、享受相同停顿美食、读一本书、参见一糟糕聚会、来平等蹩脚说走就走的远足……这些都好看作生存备受的庆典来感受,来上。

或者在无是千篇一律宗容易之事体,在日复一日的日常生活中,我们本着成千上万东西之新鲜感也会见给逐渐消耗磨损,那就是吃咱探寻那些可以要自己的确喜欢的业务,保持住那些高兴的发,保持对活的热忱,做只好玩之人,去追这个世界的光明,去染身边的灵魂。

发表评论

电子邮件地址不会被公开。 必填项已用*标注