
Sqlite数据库,在很多场合已经用得比较多,由于我的代码生成工具的需要,需要把Sqlite的表、字段、视图等信息获取出来,以便实现各种数据库快速生成项目工程的 *** 作。这里就需要利用C#获取Sqlite数据库的元数据了,和其他数据库一样。
为了获取Sqlite的数据库对象数据,我做了一个测试的例子来获取他的相关信息,其实它的元数据还是和Access的 *** 作方式很接近。首先我们先通过Sqlite的数据库管理工具或者Visual Studio来打开创建一些表,如下所示。
首先我们先来看看通过C#代码获取到数据库对象的 *** 作界面,如下所示。
获取表的元数据界面效果如下所示,视图和这个也查不多,很有意思的一点,就是它把创建的脚本的显示出来了,呵呵。
获取的表字段信息效果如下所示。
有了这些数据,我就很方便在我的代码生成工具Database2Sharp里面实现代码生成 *** 作了。
现在我们来看看以上实现的后台代码是如何的,来了解Sqlite的数据库获取元数据的 *** 作。
string connectionString = "";
public Form1()
{
InitializeComponent();
connectionString = stringFormat(@"Data Source={0}\OrderWaterdb;Version=3;", ApplicationStartupPath);
}
private void btnGetSchema_Click(object sender, EventArgs e)
{
using (SQLiteConnection conn = new SQLiteConnection(connectionString))
{
connOpen();
DataTable schemaTable = connGetSchema("TABLES");
thisdataGridView1DataSource = schemaTable;
}
}
获取表字段的 *** 作代码如下所示。
private void btnGetColumns_Click(object sender, EventArgs e)
{
using (SQLiteConnection conn = new SQLiteConnection(connectionString))
{
connOpen();
DataTable table = connGetSchema("TABLES");
if (table != null && tableRowsCount > 0)
{
string tableName = tableRows[0]["TABLE_NAME"]ToString();
DataTable schemaTable = GetReaderSchema(tableName, conn);
thisdataGridView1DataSource = schemaTable;
}
}
}
QT 自带的数据库是很好用的。
以下给一些我写的例子:
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); //添加数据库
dbsetDatabaseName("notedb"); //创建一个notedb的文件存储数据
dbopen(); //开启数据库
query = QSqlQuery(db); //获得访问数据库的query
queryexec(XXX); //执行指令(XXX为SQL指令)
dbclose(); //关闭数据库
大致只要知道以上例子就OK了。一般而言会将db变量作为全局变量或者数据成员,当需要访问的时候就获取一个query就可以了。
另外,要实现所提到的功能,要好好看看QString、QStringList,这两玩意主要是临时存放数据、分割数据等作用,另外,要看QFile、QDir、QFileInfo、QTextStream,这四个主要用来读取文本数据。看看QVector或者QList等来存放读出来的数据。
另外,要实现这玩意,SQL的语句不要求精通,但是基本的Create、Insert、Select、Delete等 *** 作要准确无误。否则出错了QT是看不出来的。QT不会检测SQL的准确性的。
再另外,在QT的编程中,C++和类都很重要,所以还是得看看。
以上就是关于如何利用C#代码获取SQLite数据库的元数据全部的内容,包括:如何利用C#代码获取SQLite数据库的元数据、怎样在Qt下连接读写sqlite数据库、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)