您的位置:首页 > 数据库

折弯机——C# 使用SQLite数据库 之 判断数据库表是否存在

2015-05-27 18:13 661 查看
SQLite语句:
cmd.CommandText = "SELECT count(*) from
sqlite_master where type='table' and name='tableName';

int a= Convert.ToInt32(cmd.ExecuteScalar());

如果存在,则返回数值1;
如果不存在,则返回数值0。
if ( a== 0) // 不存在此数据表
解释:每一个 SQLite 数据库都有一个叫 SQLITE_MASTER 的表, 它定义数据库的模式。 SQLITE_MASTER 表看起来如下:

CREATE TABLE sqlite_master (

type TEXT,

name TEXT,

tbl_name TEXT,

rootpage INTEGER,

sql TEXT

);

对于表来说,type 字段永远是 ‘table’,name 字段永远是表的名字。

示例:
int count = 0;

string tableName = offsetAngle.materialName + offsetAngle.thinkness.ToString();

try

{

using (SQLiteCommand cmd = cnn.CreateCommand())

{

cmd.CommandText = "SELECT count(*) from sqlite_master where type='table' and
name='" + tableName + "'; ";

if (Convert.ToInt32(cmd.ExecuteScalar()) == 0) // 不存在此数据表

{

cmd.CommandText = string.Format(offsetAngleCreateStr, tableName);

cmd.ExecuteNonQuery();

cmd.CommandText = string.Format(offsetAngleInsertStr, tableName,

offsetAngle.angle.ToString(), offsetAngle.offsetAngle.ToString());

count = cmd.ExecuteNonQuery();

}

else //存在此数据表,直接加数据

{

cmd.CommandText = string.Format(offsetAngleInsertStr, tableName,

offsetAngle.angle.ToString(), offsetAngle.offsetAngle.ToString());

count = cmd.ExecuteNonQuery();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: