[sqlite] 判断表、视图是否存在及常用C#操作语句
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#操作语句的更多相关文章
- Sqlite清空表数据以及重新设置主键操作
Sqlite清空表数据以及重新设置主键操作 delete from 表名; //清空数据 update sqlite_sequence SET seq = 0 where name ='表名';//自 ...
- SQl 判断 表 视图 临时表等 是否存在
1.判断是否存在addOneArticle这个存储过程 if Exists(select name from sysobjects where NAME = 'addOneArticle' and t ...
- sql 判断 表 视图 存储过程 存在 然后 删除
sql 判断 函数 存储过程是否存在的方法 (2010-12-03 10:08:57) 转载▼ 下面为您介绍sql下用了判断各种资源是否存在的代码,需要的朋友可以参考下,希望对您学习sql的函 ...
- sqlite 判断表中是否包含 某个字段
数据库 都有一个 根表..(我的理解) 也就是 你创建了一个数据库 里面就带有 一个表 sqlite_master 字段有 type , name , tbl_name , rootpage ,sq ...
- c# SQLite 判断表、字段是否存在的方法,新增、删除、重命名列
SQLiteHelper class: using System; using System.Collections.Generic; using System.Text; using System. ...
- 常用Oracle操作语句
--常用的字段类型有:varchar2,char,nchar,date,long,number,float,BLOB,CLOB --添加表字段 ); --修改表字段 ); --删除表字段 alter ...
- mysql 常用sql操作语句
获取数据库里所有表 SELECT TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='数据库名' 获取表里 ...
- Shell脚本文件中常用的操作语句
1. 清空文件中的内容 cat /dev/null >> /var/log/messages 2. 脚本中判断用户是不是root用户 ROOT_UID = 0 # ...
- 实用开发之-oracle表回滚到一个指定时间的操作语句
在开发或客户使用过程中,难免会出现误操作或脏数据,那么怎么迅速处理这个问题呢? 1.备份还原就用了,太麻烦. 就是使用ORACLE的备份功能,然后在还原,还原的时候新建一个库,然后使用dblink进行 ...
随机推荐
- Scala快速排序
Scala 快排 Scala 基本思想:经过一趟排序,把待排对象分成两个独立的部分,一部分的数据大(小)于另一部分,同理,对子对象进行如此处理,以达到所有数据都有序. package studen ...
- 关于TOSCA自动化测试工具, 我想问一些问题(持续整理中)
通过学习,实践踩坑,有以下问题不太明白 1. Artifacts and results from your complete test portfolio (cross-browser, mobi ...
- redis日常操作
redis针对所有类型的日常操作: keys * ## 取出所有key keys my* ## 模糊匹配 exists name ## 存在name键返回1,否则返回0 del key1 ## 删除一 ...
- QML中的state 状态
QML中的状态其实很好理解,任何事物在某一事件都是有一个状态的. 比如你看到的一个窗口,这个时候里面的文字和图片正处于某个状态中.比如一个超链接,你点击了,发现颜色变了,你按了Ctrl+A,整个窗体好 ...
- Java基础知识---continue
一:java概述: 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒.PDA等的微处理器: 1994年将Oak语言更名为Java: ...
- C++中去掉string字符串中的\r\n等
string imagedata;imagedata = “dudau\r\ndadafca\r\n” CString Image; Image = imagedata.c_str(); Image. ...
- 20145303 实验二 Java面向对象程序设计
实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验要求 1.没有Lin ...
- Java学习第一周博客
20145307<Java程序设计>第一周学习总结 教材学习内容总结 首先学习安装Java有两种方法,一种是用Eclipse直接编辑输出,另一种方法是用记事本之后用win+G开启cmd运行 ...
- libevent库介绍--事件和数据缓冲
首先在学习libevent库的使用前,我们还要从基本的了解开始,已经熟悉了epoll以及reactor,然后从event_base学习,依次学习事件event.数据缓冲Bufferevent和数据封装 ...
- [BZOJ1131]Sta
Description 给出一个N个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大 Input 给出一个数字N,代表有N个点.N<=1000000 下面N-1条边. Output ...