SQLite判断表格是否存在

SQLite判断表格是否存在
判断表格是否存在的方法,

select count(*)  from sqlite_master where type='table' and name = youTableName    这句sql语句的作用:从sqlite数据库中对类型为表格的进行计数统计  其他sqlite_master为sqllite数据库内置的名称,是固定不变的。

        /// <summary>
        /// 判断数据库中表格是否存在
        /// </summary>
        /// <param name="tableName">表名</param>
        /// <param name="path">数据库路径</param>
        /// <returns>是否存在</returns>
        public static bool ExistTable(string tableName, string path)
        {
            if (System.IO.File.Exists(path) == false)
                SQLiteConnection.CreateFile(path);
 
            using (SQLiteConnection con = new SQLiteConnection(string.Format("Data Source={0};Version=3;", path)))
            {
                con.Open();
                int result;
                string count="0";
                //开启事务
                using (SQLiteTransaction tr = con.BeginTransaction())
                {
                    using (SQLiteCommand cmd = con.CreateCommand())
                    {
                        string existSql = String.Format("select count(*)  from sqlite_master where type='table' and name = '{0}'", tableName);
 
                        cmd.Transaction = tr;
                        cmd.CommandText = existSql;
                        //使用result = cmd.ExecuteNonQuery();这句判断返回值的方法不正确,不论是否存在返回值都为-1
 
                        SQLiteDataReader reader = cmd.ExecuteReader();
                        while (reader.Read())
                        {
                           count= reader[0].ToString();
                        }
                    }
                    //提交事务
                    tr.Commit();
                }
                con.Close();
                if (count == "0")
                    return false;//没有该表格
                else
                    return true;
            }
        }
注意:请不用使用result = cmd.ExecuteNonQuery()的返回值来判断是否存在表格。经过实践证明无论结果是否存在,返回值都为-1.

此方法经过我实践证明,请放心使用,转载请写明来源,谢谢你的阅读

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值