檢查特定數據庫表是否有某個字段
一下內容均以MySql數據庫爲基礎,使用 C#的MySql.Data.MySqlClient 庫進行數據庫操作
- 方法一, 使用
Describe
語句;
bool hasFieldName = false;
string sql = "Describe tablename `fieldName`";
MySqlCommand cmd = new MySqlCommand(con,sql)
MySqlDataReader reader = cmd.ExecuteReader();
while(reader.Read())
{
//能獲取到列的信息,說明該數據庫表存在列,否則不存在
hasFieldName = true;
}
- 方法二,使用
INFORMATION_SCHEMA
bool hasFieldName = false;
string sql = " select Column_Name from INFORMATION_SCHEMA.COLUMNS where table_name ='" + tableName + "'";
MySqlCommand cmd = new MySqlCommand(con,sql);
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
var dbfield = reader.GetString(0);
if (dbfield == fieldName)
{
//在數據庫元表中查到了列名,說明存在該列
hasFieldName = true;
break;
}
}
以下是對使用到的MySQL知識點介紹
- Describe語句介紹
可以查看這個大佬的博客 MySQL語句之describe,explain,help,use
- INFORMATION_SCHEMA 介紹