用c语言连接MySQL数据库写一个可视化的图书管理系统
时间: 2024-01-21 13:16:48 浏览: 159
首先,需要安装 MySQL C Connector 库,这个库可以在 MySQL 官网上下载。然后,需要安装一个可视化界面库,比如 GTK+,这个库可以在 GTK+ 的官网上下载。
接下来,我们可以编写连接 MySQL 数据库的代码,并实现一些简单的图书管理功能,比如添加、查询和删除图书等。下面是一个示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <mysql/mysql.h>
#include <gtk/gtk.h>
#define HOST "localhost"
#define USER "root"
#define PASS "password"
#define DB "library"
MYSQL *conn;
void connect_to_database() {
conn = mysql_init(NULL);
if (conn == NULL) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
if (mysql_real_connect(conn, HOST, USER, PASS, DB, 0, NULL, 0) == NULL) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
}
void add_book(char *title, char *author, int year) {
char query[1000];
sprintf(query, "INSERT INTO books (title, author, year) VALUES ('%s', '%s', %d)", title, author, year);
if (mysql_query(conn, query)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
}
void search_book(char *keyword) {
char query[1000];
sprintf(query, "SELECT * FROM books WHERE title LIKE '%%%s%%' OR author LIKE '%%%s%%'", keyword, keyword);
if (mysql_query(conn, query)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
MYSQL_RES *result = mysql_store_result(conn);
if (result == NULL) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
int num_fields = mysql_num_fields(result);
MYSQL_ROW row;
while ((row = mysql_fetch_row(result))) {
for (int i = 0; i < num_fields; i++) {
printf("%s ", row[i] ? row[i] : "NULL");
}
printf("\n");
}
mysql_free_result(result);
}
void delete_book(int id) {
char query[1000];
sprintf(query, "DELETE FROM books WHERE id=%d", id);
if (mysql_query(conn, query)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
}
int main(int argc, char *argv[]) {
gtk_init(&argc, &argv);
connect_to_database();
add_book("The Great Gatsby", "F. Scott Fitzgerald", 1925);
add_book("Pride and Prejudice", "Jane Austen", 1813);
add_book("To Kill a Mockingbird", "Harper Lee", 1960);
search_book("Mockingbird");
delete_book(2);
mysql_close(conn);
return 0;
}
```
这个代码实现了连接 MySQL 数据库、添加图书、查询图书和删除图书等功能。当然,这只是一个简单的示例,实际开发中需要根据需求进行扩展和优化。
阅读全文