快速开发字段很多的MIS表


快速开发字段很多的MIS表


公司要开发MIS系统,可能一个大表,字段有100个之多……
系统用.NET WINFORM开发……数据库是MYSQL
给我们造成许多不便。此是我总结的快速开发方法流程


这里是增加纪录功能


STEP1.界面设计 
针对名称布局有规律的控件,可以采用动态生成TEXTBOX与前边的LABLE
无规律的TEXTBOX与LABLE手工拉上去,保持默认ID不要变。


STEP2,得到TEXTBOX控件ID集合


   foreach (Control con in this.Controls)
            {


            //    if (!con.HasControls)
                if(con is GroupBox)
                {
                    foreach (Control con2 in con.Controls)
                    {
                        if (con2 is TextBox)
                        {
                             Console.WriteLine(con2.Name);
                        }
                       //
                    }


                }
STEP3,放入WORD替换格式,变为类似于 textBox43,textBox44,textBox45 这样的格式,以格式做为 “原格式”,要好好保存……要保证顺序不变,以后的传参数顺序就按原格式顺序了
STEP4,在WORD中将“原格式”转为传参格式 ,如textBox29.Text,textBox30.Text,
STEP5,传入数据层参数
      rec c = new rec();
           c.add(gys.Text, jhdbh.Text, gddh.Text, ddbh.Text, bjsh.Text, sl.Text,textBox42.Text,textBox43.Text,textBox44.Text,textBox45.Text,textBox46.Text,textBox47.Text,textBox49.Text,textBox50.Text,textBox34.Text,textBox35.Text,textBox36.Text,textBox37.Text,textBox38.Text,textBox39.Text,textBox40.Text,textBox41.Text,textBox27.Text,textBox28.Text,textBox29.Text,textBox30.Text,textBox31.Text,textBox32.Text,textBox33.Text,textBox48.Text,textBox20.Text,textBox57.Text,textBox21.Text,textBox56.Text,textBox55.Text,textBox22.Text,textBox23.Text,textBox24.Text,textBox13.Text,textBox14.Text,textBox15.Text,textBox16.Text,textBox17.Text,textBox26.Text,textBox25.Text,textBox18.Text,textBox12.Text,textBox10.Text,textBox11.Text,textBox9.Text,textBox8.Text,textBox7.Text,textBox19.Text);
  STEP6,数据层接收    


   internal void add(string gys, string jhdbh, string gddh, string ddbh, string bjsh, string sl, string textBox42, string textBox43, string textBox44, string textBox45, string textBox46, string textBox47, string textBox49, string textBox50, string textBox34, string textBox35, string textBox36, string textBox37, string textBox38, string textBox39, string textBox40, string textBox41, string textBox27, string textBox28, string textBox29, string textBox30, string textBox31, string textBox32, string textBox33, string textBox48, string textBox20, string textBox57, string textBox21, string textBox56, string textBox55, string textBox22, string textBox23, string textBox24, string textBox13, string textBox14, string textBox15, string textBox16, string textBox17, string textBox26, string textBox25, string textBox18, string textBox12, string textBox10, string textBox11, string textBox9, string textBox8, string textBox7, string textBox19)
  {
//................SQL语句...............
  }
  
  
STEP7,构建SQL语句


   string sql = "        insert into mis_rec(gys,jhdbh,gddh,ddbh,bjsh,sl,textBox42,textBox43,textBox44,textBox45,textBox46,textBox47,textBox49,textBox50,textBox34,textBox35,textBox36,textBox37,textBox38,textBox39,textBox40,textBox41,textBox27,textBox28,textBox29,textBox30,textBox31,textBox32,textBox33,textBox48,textBox20,textBox57,textBox21,textBox56,textBox55,textBox22,textBox23,textBox24,textBox13,textBox14,textBox15,textBox16,textBox17,textBox26,textBox25,textBox18,textBox12,textBox10,textBox11,textBox9,textBox8,textBox7,textBox19) values( '@gys','@jhdbh','@gddh','@ddbh','@bjsh','@sl','@textBox42','@textBox43','@textBox44','@textBox45','@textBox46','@textBox47','@textBox49','@textBox50','@textBox34','@textBox35','@textBox36','@textBox37','@textBox38','@textBox39','@textBox40','@textBox41','@textBox27','@textBox28','@textBox29','@textBox30','@textBox31','@textBox32','@textBox33','@textBox48','@textBox20','@textBox57','@textBox21','@textBox56','@textBox55','@textBox22','@textBox23','@textBox24','@textBox13','@textBox14','@textBox15','@textBox16','@textBox17','@textBox26','@textBox25','@textBox18','@textBox12','@textBox10','@textBox11','@textBox9','@textBox8','@textBox7','@textBox19')";


前边的字段名就是“原格式”的内容…… values()中字段值需要利用原格式生成……代码如下


 internal static string geneSqlParam(string s)
        {
            string r = "";
            string[] sa = s.Split(",".ToCharArray());
             foreach ( string item in sa)
       {
        if(r.Equals(""))
                     r="'@"+item+"'";
                 else
                     r=r+",'@"+item+"'";
       }
             return r;
        }


         


STEP8, 传入SQL语句参数


   sql = sql.Replace("@gys", gys);
            sql = sql.Replace("@jhdbh", jhdbh);
            sql = sql.Replace("@gddh", gddh);
            sql = sql.Replace("@ddbh", ddbh);
            sql = sql.Replace("@bjsh", bjsh);
            sql = sql.Replace("@sl", sl);
            sql = sql.Replace("@textBox42", textBox42);
            sql = sql.Replace("@textBox43", textBox43);
            sql = sql.Replace("@textBox44", textBox44);
            sql = sql.Replace("@textBox45", textBox45);
            sql = sql.Replace("@textBox46", textBox46);
            sql = sql.Replace("@textBox47", textBox47);
            sql = sql.Replace("@textBox49", textBox49);
            sql = sql.Replace("@textBox50", textBox50);
            sql = sql.Replace("@textBox34", textBox34);
            sql = sql.Replace("@textBox35", textBox35);
            sql = sql.Replace("@textBox36", textBox36);
            sql = sql.Replace("@textBox37", textBox37);
            sql = sql.Replace("@textBox38", textBox38);
            sql = sql.Replace("@textBox39", textBox39);
            sql = sql.Replace("@textBox40", textBox40);
            sql = sql.Replace("@textBox41", textBox41);
            sql = sql.Replace("@textBox27", textBox27);
            sql = sql.Replace("@textBox28", textBox28);
            sql = sql.Replace("@textBox29", textBox29);
            sql = sql.Replace("@textBox30", textBox30);
            sql = sql.Replace("@textBox31", textBox31);
            sql = sql.Replace("@textBox32", textBox32);
            sql = sql.Replace("@textBox33", textBox33);
            sql = sql.Replace("@textBox48", textBox48);
            sql = sql.Replace("@textBox20", textBox20);
            sql = sql.Replace("@textBox57", textBox57);
            sql = sql.Replace("@textBox21", textBox21);
            sql = sql.Replace("@textBox56", textBox56);
            sql = sql.Replace("@textBox55", textBox55);
            sql = sql.Replace("@textBox22", textBox22);
            sql = sql.Replace("@textBox23", textBox23);
            sql = sql.Replace("@textBox24", textBox24);
            sql = sql.Replace("@textBox13", textBox13);
            sql = sql.Replace("@textBox14", textBox14);
            sql = sql.Replace("@textBox15", textBox15);
            sql = sql.Replace("@textBox16", textBox16);
            sql = sql.Replace("@textBox17", textBox17);
            sql = sql.Replace("@textBox26", textBox26);
            sql = sql.Replace("@textBox25", textBox25);
            sql = sql.Replace("@textBox18", textBox18);
            sql = sql.Replace("@textBox12", textBox12);
            sql = sql.Replace("@textBox10", textBox10);
            sql = sql.Replace("@textBox11", textBox11);
            sql = sql.Replace("@textBox9", textBox9);
            sql = sql.Replace("@textBox8", textBox8);
            sql = sql.Replace("@textBox7", textBox7);
            sql = sql.Replace("@textBox19", textBox19);   




      DbHelperMySQL.ExecuteSql(sql);




以上代码需要利用原格式生成……代码如下


  internal static void geneSqlParamReplace(string s)
        {
            string r = "";
            string[] sa = s.Split(",".ToCharArray());
            foreach (string item in sa)
            {
                string s2   = "  sql = sql.Replace(\"@"+item+"\","+item+" );   ";
                Console.WriteLine( s2  );
            }
           


           
            
        }






STEP9,建立数据库表
         
先建立一个示例表,里边像真性的加个字段,得到其建表SQL语句


CREATE TABLE `mis_rec` (   


 `gys` varchar(50) DEFAULT NULL,  


 `id` int(11) NOT NULL AUTO_INCREMENT,


  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;




因为字段很多,不好手工建立,需要用原格式生成字段建表SQL语句


 internal static void geneCreatTAbleSql(string s)  //for mysql
        {
             string r = "";
            string[] sa = s.Split(",".ToCharArray());
             foreach ( string item in sa)
       {
                string s2 = " `" + item + "` varchar(50) DEFAULT NULL,";
         Console.Write ( s2  );
       }
        //     return r;
 }


最后生成的SQL建表语句是


CREATE TABLE `mis_rec` (
   


 `gys` varchar(50) DEFAULT NULL, `jhdbh` varchar(50) DEFAULT NULL, `gddh` varchar(50) DEFAULT NULL, `ddbh` varchar(50) DEFAULT NULL, `bjsh` varchar(50) DEFAULT NULL, `sl` varchar(50) DEFAULT NULL, `textBox42` varchar(50) DEFAULT NULL, `textBox43` varchar(50) DEFAULT NULL, `textBox44` varchar(50) DEFAULT NULL, `textBox45` varchar(50) DEFAULT NULL, `textBox46` varchar(50) DEFAULT NULL, `textBox47` varchar(50) DEFAULT NULL, `textBox49` varchar(50) DEFAULT NULL, `textBox50` varchar(50) DEFAULT NULL, `textBox34` varchar(50) DEFAULT NULL, `textBox35` varchar(50) DEFAULT NULL, `textBox36` varchar(50) DEFAULT NULL, `textBox37` varchar(50) DEFAULT NULL, `textBox38` varchar(50) DEFAULT NULL, `textBox39` varchar(50) DEFAULT NULL, `textBox40` varchar(50) DEFAULT NULL, `textBox41` varchar(50) DEFAULT NULL, `textBox27` varchar(50) DEFAULT NULL, `textBox28` varchar(50) DEFAULT NULL, `textBox29` varchar(50) DEFAULT NULL, `textBox30` varchar(50) DEFAULT NULL, `textBox31` varchar(50) DEFAULT NULL, `textBox32` varchar(50) DEFAULT NULL, `textBox33` varchar(50) DEFAULT NULL, `textBox48` varchar(50) DEFAULT NULL, `textBox20` varchar(50) DEFAULT NULL, `textBox57` varchar(50) DEFAULT NULL, `textBox21` varchar(50) DEFAULT NULL, `textBox56` varchar(50) DEFAULT NULL, `textBox55` varchar(50) DEFAULT NULL, `textBox22` varchar(50) DEFAULT NULL, `textBox23` varchar(50) DEFAULT NULL, `textBox24` varchar(50) DEFAULT NULL, `textBox13` varchar(50) DEFAULT NULL, `textBox14` varchar(50) DEFAULT NULL, `textBox15` varchar(50) DEFAULT NULL, `textBox16` varchar(50) DEFAULT NULL, `textBox17` varchar(50) DEFAULT NULL, `textBox26` varchar(50) DEFAULT NULL, `textBox25` varchar(50) DEFAULT NULL, `textBox18` varchar(50) DEFAULT NULL, `textBox12` varchar(50) DEFAULT NULL, `textBox10` varchar(50) DEFAULT NULL, `textBox11` varchar(50) DEFAULT NULL, `textBox9` varchar(50) DEFAULT NULL, `textBox8` varchar(50) DEFAULT NULL, `textBox7` varchar(50) DEFAULT NULL, `textBox19` varchar(50) DEFAULT NULL,


 `id` int(11) NOT NULL AUTO_INCREMENT,


  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


STEP10.测试一次通过……优点就是自动生成的不会有字段名字手工打错的情况






我的总结,对于这种字段很多的表来说,利用代码生成是提高速度的好方法……界面上最重要的是TEXTBOX的默认ID不要去改动它……可以节约很多时间的……也使得名字有规律可循……在写代码的时候也可以以数字直接就写了,不用返回界面去查看ID.






posted @ 2012-06-08 10:11  attilaxAti  阅读(22)  评论(0编辑  收藏  举报