博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[sqlite] 判断表、视图是否存在及常用C#操作语句
阅读量:6107 次
发布时间:2019-06-21

本文共 1799 字,大约阅读时间需要 5 分钟。

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);    }

  

转载于:https://www.cnblogs.com/huxiaolin/p/4157546.html

你可能感兴趣的文章
MVC中下拉框显示枚举项
查看>>
Linux基础精华
查看>>
SqlServer2008第一次安装后连接问题
查看>>
cocos2d-x Schedule详解
查看>>
sdut 2163:Identifiers(第二届山东省省赛原题,水题)
查看>>
C++ 容器:顺序性容器、关联式容器和容器适配器
查看>>
mysql 常用语句集
查看>>
Atitit.软件开发提升稳定性总结
查看>>
lftp查看文件时间与登录服务查看文件时间相差8小时
查看>>
[leetcode]Next Permutation @ Python
查看>>
JAVA(2)——JDBC
查看>>
php heredoc 与 nowdoc
查看>>
DBA_Oracle DBA常用表汇总(概念)
查看>>
第30周二
查看>>
数学类杂志SCI2013-2014影响因子
查看>>
实用的树形菜单控件tree
查看>>
最近公共祖先(lca)
查看>>
【WP 8.1开发】文件选取器的使用方法
查看>>
Java实现BASE64编解码
查看>>
【Java】java基本知识
查看>>