c#判斷MySQL數據庫中是否存在某個數據庫或數據表的方法

一、判斷某數據庫是否存在

(一)單純判斷數據庫dbname是否存在

SQL語句爲:

SELECT * FROM information_schema.SCHEMATA where SCHEMA_NAME='dbname';

c#實現代碼如下:

String sqlConn = "server=10.0.0.3;port=3306;user=root;password=mypassword;";
MySqlConnection conn = new MySqlConnection(sqlConn);//
string sqlDB = "SELECT * FROM information_schema.SCHEMATA where SCHEMA_NAME='dbname';";
MySqlDataAdapter adp = new MySqlDataAdapter(sqlDB, conn);
DataSet ds = new DataSet();
adp.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
   MessageBox.Show("數據庫已存在");
else
   MessageBox.Show("數據庫不存在!");

(二)如果判斷數據庫dbname存在,則刪除

SQL語句如下:

DROP DATABASE IF EXISTS `test1`;

MySqlCommand cmd=new MySqlCommand(string.Format("DROP DATABASE IF EXISTS 'test';"));
cmd.ExecuteNonQuery();

(三)如果判斷數據庫dbname不存在,則創建數據庫

SQL語句如下:

CREATE DATABASE IF NOT EXISTS `test1` ;
c#執行代碼如下:

MySqlCommand cmd=new MySqlCommand(string.Format("CREATE DATABASE IF NOT EXISTS 'test';"));
cmd.ExecuteNonQuery();

二、判斷數據庫中某數據表是否存在

(一)單純判斷dbname數據庫中是否存在tbname表格

SQL語句爲:

SELECT * FROM information_schema.TABLES where table_name='tbname' and TABLE_SCHEMA='dbname';

c#實現代碼如下:

String sqlConn = "server=10.0.0.3;port=3306;user=root;password=mypassword;";
MySqlConnection conn = new MySqlConnection(sqlConn);//
string sqlTB = "SELECT * FROM information_schema.TABLES where table_name='tbname' and TABLE_SCHEMA ='dbname';";
MySqlDataAdapter adp = new MySqlDataAdapter(sqlTB, conn);
DataSet ds = new DataSet();
adp.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
   MessageBox.Show("數據庫表已存在");
else
   MessageBox.Show("數據庫表不存在!");

(二)如果判斷dbname數據庫中不存在tbname數據表,則創建

SQL語句爲:

CREATE TABLE IF NO NOT EXISTS `tbname` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `unit` varchar(45) DEFAULT NULL,
  `name` varchar(45) DEFAULT NULL,
  `phone` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=56370 DEFAULT CHARSET=utf8;

C#實現代碼如下:

MySqlCommand cmd;
cmd=new MySqlCommand(string.Format("CREATE DATABASE IF NOT EXISTS dbname;"),conn);
cmd.ExecuteNonQuery();
string sqlcreatetable = string.Format("CREATE TABLE IF NOT EXISTS dbname.tbname(id int(11) NOT NULL AUTO_INCREMENT,unit varchar(45) DEFAULT NULL,name varchar(45) DEFAULT NULL,phone varchar(45) DEFAULT NULL,PRIMARY KEY (id)) ENGINE=InnoDB AUTO_INCREMENT=56370 DEFAULT CHARSET=utf8;");
cmd = new MySqlCommand(sqlcreatetable, conn);
cmd.ExecuteNonQuery();

(三)如果判斷dbname數據庫中存在tbname數據表,則刪除

SQL語句爲:

Drop table if exists dbname.tbname;

c#實現代碼如下:

MySqlCommand cmd;
cmd=new MySqlCommand(string.Format("Drop table if exists dbname.tbname;"),conn);
cmd.ExecuteNonQuery();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章