您的位置:首页 > 其它

Access中判断一个表中某个字段是否存在,以及添加字段

2012-02-19 19:54 666 查看
因为要做软件升级,数据库的字段有变化。所以要判断Access中一个字段是否存在,如果不存在就增加。

以下是参考http://topic.csdn.net/t/20021119/11/1188678.html
Brunhild的解决方案,我又重写了一下。

private bool checkField(String sTblName, String sFldName)
{
bool isExist=false;
try
{
OleDbConnection aConnection = new OleDbConnection(DB.getConnectStr());
aConnection.Open();

object[] oa ={ null, null, sTblName, sFldName };

DataTable schemaTable = aConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Columns, oa);
if (schemaTable.Rows.Count == 0)
{
isExist = false;
}
else
{
isExist = true;
}

MessageBox.Show((schemaTable.Rows.Count == 0 ? "不存在" : "存在"));

aConnection.Close();
}
catch (Exception err)
{
LogHelper.log(err.Message);
}

return isExist;
}


新增加一个字段:

//为一个表新增加一个字段
public static void addColumnToTable(String tableName, String fieldName, String dataType)
{
//创建数据库连接

OleDbConnection aConnection = new OleDbConnection(DB.getConnectStr());

String sqlAlter = "alter table "+tableName+" add column "+fieldName+" "+dataType+";";
OleDbCommand aCommand = new OleDbCommand(sqlAlter, aConnection);
try
{
aConnection.Open();

aCommand.ExecuteNonQuery();

//关闭连接,这很重要
aConnection.Close();

LogHelper.log("向数据库中的"+tableName+"表添加字段"+fieldName+"成功");
}
catch (Exception err)
{
LogHelper.log(err.Message);
LogHelper.log("向数据库中的" + tableName + "表添加字段" + fieldName + "失败");
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: