c语言怎么键盘输入数据库数据,键盘输入数据并插入数据库sql srver+代码
时间: 2024-02-25 14:53:00 浏览: 94
浅析SQLServer中的Scanf与Printf
可以使用 C 语言中的标准输入函数 `scanf()` 获取键盘输入数据,并通过 SQL Server Native Client 将数据插入数据库。
以下是示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <sql.h>
#include <sqlext.h>
int main() {
SQLHANDLE handleEnv;
SQLHANDLE handleConn;
SQLHANDLE handleStmt;
SQLCHAR query[1000];
SQLCHAR data[1000];
SQLLEN lenData;
printf("请输入数据:");
scanf("%s", data);
if (SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &handleEnv) != SQL_SUCCESS) {
printf("无法分配环境句柄!\n");
return 1;
}
if (SQLSetEnvAttr(handleEnv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0) != SQL_SUCCESS) {
printf("无法设置环境属性!\n");
return 1;
}
if (SQLAllocHandle(SQL_HANDLE_DBC, handleEnv, &handleConn) != SQL_SUCCESS) {
printf("无法分配连接句柄!\n");
return 1;
}
if (SQLConnect(handleConn, (SQLCHAR *)"server_name", SQL_NTS, (SQLCHAR *)"username", SQL_NTS, (SQLCHAR *)"password", SQL_NTS) != SQL_SUCCESS) {
printf("连接数据库失败!\n");
return 1;
}
if (SQLAllocHandle(SQL_HANDLE_STMT, handleConn, &handleStmt) != SQL_SUCCESS) {
printf("无法分配语句句柄!\n");
return 1;
}
sprintf(query, "INSERT INTO table_name (column_name) VALUES ('%s')", data);
if (SQLPrepare(handleStmt, query, SQL_NTS) != SQL_SUCCESS) {
printf("无法准备 SQL 语句!\n");
return 1;
}
if (SQLBindParameter(handleStmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, sizeof(data), 0, data, sizeof(data), &lenData) != SQL_SUCCESS) {
printf("无法绑定参数!\n");
return 1;
}
if (SQLExecute(handleStmt) != SQL_SUCCESS) {
printf("插入数据失败:%s\n", query);
return 1;
}
printf("数据插入成功!\n");
SQLFreeHandle(SQL_HANDLE_STMT, handleStmt);
SQLDisconnect(handleConn);
SQLFreeHandle(SQL_HANDLE_DBC, handleConn);
SQLFreeHandle(SQL_HANDLE_ENV, handleEnv);
return 0;
}
```
在上面的代码中,需要将 `server_name`、`username`、`password`、`table_name` 和 `column_name` 替换为实际的 SQL Server 数据库地址、用户名、密码、表名和列名。
阅读全文