1,判断表是否存在:

SELECT name, sql FROM sqlite_master WHERE type="table" AND name = "Dom" 

结果如下:

2.判断视图是否存在:

SELECT count(*) FROM sqlite_master WHERE type = "view" AND name = "myView"

结果如下:

type='view'判断视图.结果>0就是有这个视图


另附C#操作的常用代码:

    DataTable table = conn.GetSchema("TABLES");
    if (table != null && table.Rows.Count > 0)
     {
     string tableName = table.Rows[0]["TABLE_NAME"].ToString();
     DataTable schemaTable = GetReaderSchema(tableName, conn);
     }

  

    private DataTable GetReaderSchema(string tableName, SQLiteConnection connection)
{
DataTable schemaTable = null;
IDbCommand cmd = new SQLiteCommand();
cmd.CommandText = string.Format("select * from [{0}]", tableName);
cmd.Connection = connection;
using (IDataReader reader = cmd.ExecuteReader(CommandBehavior.KeyInfo | CommandBehavior.SchemaOnly))
{
schemaTable = reader.GetSchemaTable();
}
return schemaTable;
}

  

    foreach (DataRow dr in schemaTable.Rows)
{
ColumnInfo info = new ColumnInfo();
info.Name = new NameElement(dr["ColumnName"].ToString());
info.Ordinal = Convert.ToInt32(dr["ColumnOrdinal"].ToString());
info.AllowDBNull = (bool)dr["AllowDBNull"];
info.MaxLength = Convert.ToInt32(dr["ColumnSize"].ToString());
info.DataTypeId = Convert.ToInt32(dr["ProviderType"].ToString());
info.DataType = dr["DataTypeName"].ToString().Trim();
info.AutoIncrement = (bool)dr["IsAutoIncrement"];
info.IsPrimaryKey = (bool)dr["IsKey"];
info.Unique = (bool)dr["IsUnique"];
info.IsReadOnly = (bool)dr["IsReadOnly"];
string netType = dr["DataType"].ToString(); list.Add(info.Name.Name.ToString(), info);
}

  

[sqlite] 判断表、视图是否存在及常用C#操作语句的更多相关文章

  1. Sqlite清空表数据以及重新设置主键操作

    Sqlite清空表数据以及重新设置主键操作 delete from 表名; //清空数据 update sqlite_sequence SET seq = 0 where name ='表名';//自 ...

  2. SQl 判断 表 视图 临时表等 是否存在

    1.判断是否存在addOneArticle这个存储过程 if Exists(select name from sysobjects where NAME = 'addOneArticle' and t ...

  3. sql 判断 表 视图 存储过程 存在 然后 删除

    sql 判断 函数 存储过程是否存在的方法 (2010-12-03 10:08:57) 转载▼     下面为您介绍sql下用了判断各种资源是否存在的代码,需要的朋友可以参考下,希望对您学习sql的函 ...

  4. sqlite 判断表中是否包含 某个字段

    数据库 都有一个 根表..(我的理解) 也就是 你创建了一个数据库 里面就带有 一个表 sqlite_master 字段有 type , name  , tbl_name , rootpage ,sq ...

  5. c# SQLite 判断表、字段是否存在的方法,新增、删除、重命名列

    SQLiteHelper class: using System; using System.Collections.Generic; using System.Text; using System. ...

  6. 常用Oracle操作语句

    --常用的字段类型有:varchar2,char,nchar,date,long,number,float,BLOB,CLOB --添加表字段 ); --修改表字段 ); --删除表字段 alter ...

  7. mysql 常用sql操作语句

    获取数据库里所有表 SELECT TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='数据库名' 获取表里 ...

  8. Shell脚本文件中常用的操作语句

    1. 清空文件中的内容 cat  /dev/null  >> /var/log/messages 2. 脚本中判断用户是不是root用户 ROOT_UID = 0            # ...

  9. 实用开发之-oracle表回滚到一个指定时间的操作语句

    在开发或客户使用过程中,难免会出现误操作或脏数据,那么怎么迅速处理这个问题呢? 1.备份还原就用了,太麻烦. 就是使用ORACLE的备份功能,然后在还原,还原的时候新建一个库,然后使用dblink进行 ...

随机推荐

  1. cocos2dx 3.x 精灵重叠时点击最上层的精灵

    ps. 这个方法只适用设置精灵的触摸.. //注册触摸事件..3.X后可以在这样写..不需要重新声明 EventListenerTouchOneByOne *listener = EventListe ...

  2. iOS 机智的修改导航栏返回事件

    只需要一个在自定义的基类控制器的UIBarButtonItem,在需要的时候继承该类,实现selector方法即可(如果大部分处理都是一样的,只需在基类控制器内实现操作). self.navigati ...

  3. Java中的JDBC是什么?

    JDBC(Java Data Base Connectivity, Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它有一组用Java语言编写的类和接 ...

  4. Python- discover()方法与执行顺序补充

    可以根据不同的功能创建不同的测试文件,甚至是不同的测试目录,测试文件中还可以将不同的小功能划分为不同的测试类,在类下编写测试用例,让整体结构更加清晰 但通过addTest()添加.删除测试用例就变得非 ...

  5. LNMP环境简单教程

    一:LNMP可以进行简单优化,主要2方面.NGINX和PHP进程数,分别是以下2个文件: 1. /usr/local/nginx/conf/nginx.conf2. /usr/local/php/et ...

  6. 在python3下使用OpenCV 抓取摄像头图像并实时显示3色直方图

    以下代码为在Python3环境下利用OpenCV 抓取摄像头的实时图像, 通过OpenCV的 calHist函数计算直方图, 并显示在3个不同窗口中. import cv2 import numpy ...

  7. Web前端学习笔记之jQuery基础

    0x0 jQuery介绍 jQuery是一个轻量级的.兼容多浏览器的JavaScript库. jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方便地进行Aja ...

  8. 如何用纯 CSS 创作一个跳动的字母 i

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/pZbrpJ 可交互视频 ...

  9. 20145327 《Java程序设计》第四周学习总结

    20145327 <Java程序设计>第四周学习总结 教材学习内容总结 继承也符合DRY原则. Java中只有单一继承,也就是只能有一个父类 继承可以复用代码,更大的用处是实现「多态」:封 ...

  10. 20145211 《网络渗透》MS08_067安全漏洞

    20145211 <网络渗透>MS08_067安全漏洞 一.实验原理 ms08_067是服务器服务中一个秘密报告的漏洞,于2008年被发现.攻击者利用靶机默认开放的SMB服务的445端口, ...