示例#1
0
        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);
        }
示例#3
0
        /// <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)
     {
     }
 }
示例#5
0
        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();
        }