public string MakeConstructor(string table, DataTable columns) { DbHandler db = new DbHandler(); var parameter = ""; var content = ""; foreach (DataRow col in columns.Rows) { var colName = col["COLUMN_NAME"].ToString(); var type = db.GetType(col["DATA_TYPE"].ToString()); parameter += type + " " + colName + ", "; content += " this." + colName + " = " + colName + ";" + System.Environment.NewLine; } string UpdateFunc = "public " + table + "(" + parameter.Remove(parameter.Length - 2) + ")" + System.Environment.NewLine; UpdateFunc += " {" + System.Environment.NewLine; UpdateFunc += content; UpdateFunc += " }" + System.Environment.NewLine; return(UpdateFunc); }
private async void btnMap_Click(object sender, EventArgs e) { var location = lblLink.Text; var template = "../../Template/ADO.cs"; if (string.IsNullOrWhiteSpace(location)) { MessageBox.Show("Please choose file path"); return; } MapADOFunction map = new MapADOFunction(); FileHandler filehandler = new FileHandler(); DbHandler db = new DbHandler(); string connectionString = mgrDataSQL.connStr; if (string.Compare(txtDbName.Text.Trim(), "MBO") != 0) { connectionString = "Data Source=" + txtIp.Text + ";Initial Catalog=" + txtDbName.Text + ";User ID=" + txtUsername.Text + ";Password="******";Integrated Security=False"; } var tables = await db.GetTableNames(txtDbName.Text, connectionString); foreach (DataRow row in tables.Rows) { var tbname = row["NAME"].ToString(); var columns = await db.GetColumnsNames(txtDbName.Text, tbname, connectionString); var constructor = map.MakeConstructor(tbname, columns); var insert = map.MakeInsert(tbname, columns); var update = map.MakeUpdateFunc(tbname, columns); var property = ""; foreach (DataRow col in columns.Rows) { var colName = col["COLUMN_NAME"].ToString(); var type = db.GetType(col["DATA_TYPE"].ToString()); property += " public " + type + " " + colName + " { get; set; }" + System.Environment.NewLine; } string strTemplate = filehandler.ReadFile(template); strTemplate = strTemplate.Replace("MapperAsync.Template", txtNamespace.Text); strTemplate = strTemplate.Replace("ADO", tbname); strTemplate = strTemplate.Replace("public string ID { get; set; }", property); strTemplate = strTemplate.Replace("void constructor() { }", constructor); strTemplate = strTemplate.Replace("void insertfunc() { }", insert); strTemplate = strTemplate.Replace("void updatefunc() { }", update); if (filehandler.FileExist(location + "\\" + tbname + ".cs")) { filehandler.DeleteFile(location + "\\" + tbname + ".cs"); } try { filehandler.WriteFile(strTemplate, location + "\\" + tbname + ".cs"); } catch { MessageBox.Show("Cannot open file"); return; } txtResult.Text += "Mapping " + tbname + ".cs success" + System.Environment.NewLine; } MessageBox.Show("Mapping done!"); Process.Start(location); }