public static void Initialize(MySqlConnection conn) { tableInfo = MySqlDapper.ParseTable(typeof(T)); sqlToInsert = MySqlDapper.GetSqlToInsert(tableInfo); sqlToUpsert = MySqlDapper.GetSqlToUpsert(tableInfo); string sqlToCreate = MySqlDapper.GetSqlToCreate(tableInfo); conn.Execute(sqlToCreate); }
/// <summary> /// call show create table command /// </summary> /// <param name="table"></param> /// <param name="conn"></param> /// <returns></returns> public static string GetShowCreateTableSql(this MySqlTableInfo table, MySqlConnection conn) { var cmd = new MySqlCommand("show create table " + table.Name, conn); var reader = cmd.ExecuteReader(); string createTableSql = null; while (reader.Read()) { createTableSql = reader.GetString(1); } reader.Close(); return(createTableSql); }
/// <summary> /// generate cs code for this table /// </summary> /// <param name="tableinfo"></param> public void GenerateCsCodeForSqlTable(MySqlTableInfo tableinfo) { //from table info => we generate the C# code StringBuilder stbuilder = this.StBuilder; stbuilder.AppendLine("class " + tableinfo.Name + "{"); List <MySqlColumnInfo> cols = tableinfo.Columns; int colCount = cols.Count; for (int i = 0; i < colCount; ++i) { MySqlColumnInfo col = cols[i]; //map sql-type to cs-type stbuilder.AppendLine("public " + GetCsTypeFromSqlType(col) + " " + col.Name + ";"); } stbuilder.Append("}"); }
/// <summary> /// reload table in specific database /// </summary> /// <param name="table"></param> /// <param name="conn"></param> public static void ReloadColumnList(this MySqlTableInfo table, MySqlConnection conn) { try { var cmd = new MySqlCommand("describe " + table.Name, conn); var descReader = cmd.ExecuteReader(); //columns //Field.. //Type //Null //Key //Default, //Extra int field_col = descReader.GetOrdinal("Field"), type_col = descReader.GetOrdinal("Type"), null_col = descReader.GetOrdinal("Null"), key_col = descReader.GetOrdinal("Key"), default_col = descReader.GetOrdinal("Default"), extra_col = descReader.GetOrdinal("Extra"); //--------------------- List <MySqlColumnInfo> colInfoList = new List <MySqlColumnInfo>(); while (descReader.Read()) { // MySqlColumnInfo colInfo = new MySqlColumnInfo(); colInfo.Name = descReader.GetString(field_col); colInfo.FieldTypeName = descReader.GetString(type_col); colInfo.Nullable = descReader.GetString(null_col) == "YES"; colInfo.Key = descReader.GetString(key_col); colInfo.DefaultValue = descReader.GetString(default_col); colInfo.ExtraInfo = descReader.GetString(extra_col); // colInfoList.Add(colInfo); } descReader.Close(); table.Columns = colInfoList; } catch (Exception ex) { } }
private void tlstrpGenCsCode_Click(object sender, EventArgs e) { if (treeView1.SelectedNode == null) { return; } // MySqlTableInfo selectedTableInfo = treeView1.SelectedNode.Tag as MySqlTableInfo; if (selectedTableInfo == null) { return; } //--------------- //create data from selected tree node //show create table string db = selectedTableInfo.OwnerDatabase.Name; string tb = selectedTableInfo.Name; MySqlConnection mySqlConn = new MySqlConnection(GetLocalConnString()); mySqlConn.Open(); string createSql = ""; string sql = "SHOW CREATE TABLE " + db + "." + tb; var cmd = new MySqlCommand(sql, mySqlConn); var reader = cmd.ExecuteReader(); if (reader.Read()) { createSql = reader.GetString(1); } reader.Close(); //----------------------- if (createSql == "") { return; } MySqlParser parser = new MySqlParser(); parser.ParseSql(createSql); MySqlInfoToCsCodeGenerator tableInfoToCsCodeGen = new MySqlInfoToCsCodeGenerator(); StringBuilder result = new StringBuilder(); List <TablePart> tables = parser.ResultTables; foreach (TablePart table in tables) { if (table.DatabaseName == null) { table.DatabaseName = db; } // tableInfoToCsCodeGen.GenerateCsCode(table, result); //tableInfoToCsCodeGen.GenerateSqlAndSave(table, "code." + db + "." + table + ".cs"); } mySqlConn.Close(); // this.textBox1.Text = result.ToString(); }