예제 #1
0
        public static void T_DropCreateInsert()
        {
            var connStr = GetMySqlConnString();
            var conn    = new MySqlConnection(connStr);
            var tc      = new TaskChain();

            conn.AsyncOpen(tc);
            {
                //1. drop tabled
                var cmd = new MySqlCommand("drop table if exists user_info2", conn);
                cmd.AsyncExecuteNonQuery(tc);
            }
            {
                var cmd = new MySqlCommand("drop table if exists user_info2", conn);
                cmd.AsyncExecuteNonQuery(tc);
            }
            //2. create new one
            {
                var cmd = new MySqlCommand("create table user_info2(uid int(10),u_name varchar(45));", conn);
                cmd.AsyncExecuteNonQuery(tc);
            }
            //3. add some data
            {
                var cmd = new MySqlCommand("insert into user_info2(uid, u_name) values(?uid, 'abc')", conn);
                cmd.Parameters.AddWithValue("?uid", 10);
                cmd.AsyncExecuteNonQuery(tc);
            }

            Report.WriteLine("ok");
            conn.AsyncClose(tc);
            tc.Start();
        }
예제 #2
0
        static void DropTableIfExists(MySqlConnection conn, TaskChain tc)
        {
            string sql = "drop table if exists test001";
            var    cmd = new MySqlCommand(sql, conn);

            cmd.AsyncExecuteNonQuery(tc);
        }
예제 #3
0
        static void CreateTable(MySqlConnection conn, TaskChain tc)
        {
            string sql = "create table test001(col_id  int(10) unsigned not null auto_increment, col1 int(10)," +
                         "col2 char(2),col3 varchar(255),col4 datetime, primary key(col_id) )";
            var cmd = new MySqlCommand(sql, conn);

            cmd.AsyncExecuteNonQuery(tc);
        }
예제 #4
0
        static void InsertData(MySqlConnection conn, TaskChain tc)
        {
            string sql = "insert into test001(col1,col2,col3,col4) values(10,'AA','123456789','0001-01-01')";
            var    cmd = new MySqlCommand(sql, conn);

            cmd.AsyncExecuteNonQuery(tc);
            tc.AddTask(() =>
            {
                var lastInsertId = cmd.LastInsertedId;
            });
        }
예제 #5
0
        public static void T_InsertAndSelect_Async()
        {
            System.Diagnostics.Stopwatch stopW = new System.Diagnostics.Stopwatch();
            stopW.Start();
            var connStr = GetMySqlConnString();
            var conn    = new MySqlConnection(connStr);

            conn.UseConnectionPool = true;

            var tc = new TaskChain();

            conn.AsyncOpen(tc);

            {
                //drop table if exist
                string sql = "drop table if exists test001";
                var    cmd = new MySqlCommand(sql, conn);
                cmd.AsyncExecuteNonQuery(tc);
            }


            {
                string sql = "create table test001(col_id  int(10) unsigned not null auto_increment, col1 int(10)," +
                             "col2 char(2),col3 varchar(255),col4 datetime, primary key(col_id) )";
                var cmd = new MySqlCommand(sql, conn);
                cmd.AsyncExecuteNonQuery(tc);
            }

            for (int i = 0; i < 2000; ++i)
            {
                string sql = "insert into test001(col1,col2,col3,col4) values(10,'AA','123456789','0001-01-01')";
                var    cmd = new MySqlCommand(sql, conn);
                cmd.AsyncExecuteNonQuery(tc);
            }

            conn.AsyncClose(tc);
            tc.WhenFinish(() =>
            {
                stopW.Stop();
                Report.WriteLine("avg:" + stopW.ElapsedTicks);
            });
            tc.Start();
        }
예제 #6
0
        public static void T_InsertAndSelect_Async3()
        {
            System.Diagnostics.Stopwatch stopW = new System.Diagnostics.Stopwatch();
            stopW.Start();
            var connStr = GetMySqlConnString();
            var conn    = new MySqlConnection(connStr);

            conn.UseConnectionPool = true;

            var tc = new TaskChain();

            //add task chain too connection object
            conn.AsyncOpen(tc);
            //-----------------------------------------
            {
                //drop table if exist
                string sql = "drop table if exists test001";
                var    cmd = new MySqlCommand(sql, conn);
                cmd.AsyncExecuteNonQuery(tc);
            }
            //-----------------------------------------
            {
                //drop table if exist
                string sql = "drop table if exists test001";
                var    cmd = new MySqlCommand(sql, conn);
                cmd.AsyncExecuteNonQuery(tc);
            }
            //-----------------------------------------
            {
                string sql = "create table test001(col_id  int(10) unsigned not null auto_increment, col1 int(10)," +
                             "col2 char(2),col3 varchar(255),col4 datetime, primary key(col_id) )";
                var cmd = new MySqlCommand(sql, conn);
                cmd.AsyncExecuteNonQuery(tc);
            }
            //-----------------------------------------
            for (int i = 0; i < 100; ++i)
            {
                string sql = "insert into test001(col1,col2,col3,col4) values(10,'AA','123456789','0001-01-01')";
                var    cmd = new MySqlCommand(sql, conn);
                cmd.AsyncExecuteNonQuery(tc);
            }
            //-----------------------------------------
            {
                string sql = "select * from test001";
                var    cmd = new MySqlCommand(sql, conn);

                cmd.AsyncExecuteSubTableReader(tc, subtable =>
                {
                    //when new task is add after tc is started
                    //then this new task is immmediately insert
                    //after current task
                });
            }
            {
                string sql = "select sysdate()";
                var    cmd = new MySqlCommand(sql, conn);
                cmd.AsyncExecuteScalar <DateTime>(tc, dtm =>
                {
                });
            }
            //-----------------------------------------
            conn.AsyncClose(tc);
            tc.WhenFinish(() =>
            {
                stopW.Stop();
                Report.WriteLine("avg:" + stopW.ElapsedTicks);
            });
            tc.BeforeEachTaskBegin(() =>
            {
                Console.WriteLine(tc.CurrentTaskIndex + "/" + tc.TaskCount);
            });
            //----------------------------------------
            tc.Start();
        }