在C语言中,将数据写入数据库通常需要使用数据库连接库,例如MySQL的C API(libmysqlclient)、SQLite的C API、或者通过ODBC(Open Database Connectivity)访问其他数据库。下面是一个使用SQLite的简单示例,展示如何将数据写入数据库。
使用SQLite将数据写入数据库
安装SQLite库:确保你的开发环境中安装了SQLite库。如果使用Linux,可以通过包管理器安装;在Windows上,可以从SQLite官网下载预编译的二进制文件。
编写C代码:
c
复制代码
#include <------>
#include <sqlite3.h>
#include <stdlib.h>
#include <string.h>
int main() {
展开剩余82%sqlite3 *db;
char *errMsg = 0;
int rc;
const char *sql;
// 打开数据库(如果数据库不存在,将会创建一个新的数据库文件)
rc = sqlite3_open("test.db", &db);
if (rc) {
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
return(1);
} else {
fprintf(stdout, "Opened database successfully\n");
}
// 创建表的SQL语句
sql = "CREATE TABLE IF NOT EXISTS COMPANY(" \
"ID INT PRIMARY KEY NOT NULL," \
"NAME TEXT NOT NULL," \
"AGE INT NOT NULL," \
"ADDRESS CHAR(50)," \
"SALARY REAL );";
// 执行SQL语句
rc = sqlite3_exec(db, sql, 0, 0, &errMsg);
if (rc != SQLITE_OK) {
fprintf(stderr, "SQL error: %s\n", errMsg);
sqlite3_free(errMsg);
} else {
fprintf(stdout, "Table created successfully\n");
}
// 插入数据的SQL语句
sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) " \
"VALUES (1, 'Paul', 32, 'California', 20000.00 ); " \
"INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) " \
"VALUES (2, 'Allen', 25, 'Texas', 15000.00 ); ";
// 执行插入SQL语句
rc = sqlite3_exec(db, sql, 0, 0, &errMsg);
if (rc != SQLITE_OK) {
fprintf(stderr, "SQL error: %s\n", errMsg);
sqlite3_free(errMsg);
} else {
fprintf(stdout, "Records created successfully\n");
}
// 关闭数据库
sqlite3_close(db);
return 0;
}
代码说明
sqlite3_open:用于打开或创建一个SQLite数据库。
sqlite3_exec:用于执行SQL语句。
CREATE TABLE:创建一个名为COMPANY的表,如果该表不存在。
INSERT INTO:向COMPANY表中插入数据。
sqlite3_close:关闭数据库连接。
编译和运行
确保SQLite库已正确安装,并使用以下命令编译和运行程序:
sh
复制代码
gcc -o myprogram myprogram.c -lsqlite3
./myprogram
这将编译并运行你的程序,创建数据库文件test.db,并在其中创建表和插入数据。
其他数据库
如果你使用其他数据库(如MySQL),你需要安装相应的C API库(如MySQL的libmysqlclient),并使用相应的API函数来连接和操作数据库。连接和操作的方式会因数据库而异,但基本的步骤(连接、执行SQL、关闭连接)是相似的。
发布于:浙江省
