windows c语言实现建立数据库并实现读写操作,尽量不需要额外添加库
时间: 2024-01-27 15:05:50 浏览: 107
在 Windows 上,可以使用 SQLite 数据库来实现 C 语言的读写操作,SQLite 是一个轻量级的嵌入式数据库,非常适合用于小型应用程序的开发。以下是基本步骤:
1. 下载 SQLite 的预编译二进制文件,解压到本地目录。
2. 在 C 语言程序中包含 SQLite 的头文件 sqlite3.h。
3. 使用 sqlite3_open() 函数打开数据库文件,如果数据库文件不存在则会创建新的。
4. 使用 sqlite3_exec() 函数执行 SQL 语句进行数据读写操作。
5. 使用 sqlite3_close() 函数关闭数据库连接。
以下是一个简单的示例程序,实现了创建一个名为 "test.db" 的数据库文件,并在其中创建一个名为 "users" 的表格,插入一些数据并进行查询操作:
```
#include <stdio.h>
#include <stdlib.h>
#include "sqlite3.h"
int main(int argc, char* argv[])
{
sqlite3 *db;
char *zErrMsg = 0;
int rc;
char *sql;
// 打开数据库连接
rc = sqlite3_open("test.db", &db);
if (rc)
{
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return(1);
}
// 创建表格
sql = "CREATE TABLE users (id INT PRIMARY KEY, name TEXT, age INT);";
rc = sqlite3_exec(db, sql, 0, 0, &zErrMsg);
if (rc != SQLITE_OK)
{
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}
// 插入数据
sql = "INSERT INTO users (id, name, age) VALUES (1, 'Tom', 20);"
"INSERT INTO users (id, name, age) VALUES (2, 'Jerry', 25);";
rc = sqlite3_exec(db, sql, 0, 0, &zErrMsg);
if (rc != SQLITE_OK)
{
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}
// 查询数据
sql = "SELECT * FROM users";
rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
if (rc != SQLITE_OK)
{
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}
// 关闭数据库连接
sqlite3_close(db);
return 0;
}
static int callback(void *NotUsed, int argc, char **argv, char **azColName){
int i;
for(i=0; i<argc; i++){
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}
```
以上代码使用了 SQLite 的预编译二进制文件,因此不需要额外添加库。需要注意的是,在实际开发中,还需要进行错误处理和内存管理等方面的优化。
阅读全文