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

因为要做软件升级,数据库的字段有变化。所以要判断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 + "失败");
            }

        }



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值