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(); }
static void DropTableIfExists(MySqlConnection conn, TaskChain tc) { string sql = "drop table if exists test001"; var cmd = new MySqlCommand(sql, conn); cmd.AsyncExecuteNonQuery(tc); }
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); }
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; }); }
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(); }
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(); }