4,011
社区成员
发帖
与我相关
我的任务
分享
bool CROVSOFEWAREDlg::Connectmysqlite()
{
//创建数据库 //sqlite3的数据库句柄已经声明为全局
zErrMsg = NULL;
rc = sqlite3_open("DataBase\\ShuJu.db", &my_sqlite); //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件(ShuJu.db)
char sql[400] = "";
if (rc != SQLITE_OK)
{
sqlite3_close(my_sqlite); //打开失败!
MessageBox(_T("数据库打开失败,请检查后再操作!"), NULL, MB_ICONSTOP);
return FALSE;
}
sqlite3_free(zErrMsg);
// 创建表,名为“Jilu”
//测试到底是哪里出错
memset(sql, 0, sizeof(sql));
sprintf_s(sql, "CREATE TABLE IF NOT EXISTS user_database(Id int PRIMARY KEY NOT NULL, Name varchar(20) NOT NULL UNIQUE, Password varchar(20) NOT NULL)");// 创建一个表格
if (sqlite3_exec(my_sqlite, sql, NULL, NULL, &zErrMsg) != SQLITE_OK)
{
MessageBox(_T("操作失败,数据库链表生成错误!"), NULL, MB_ICONSTOP);
return FALSE;
}
//测试插入数据
int initialNum = 3;
int rows;
char UserName[20];
int UserPasswrod;
memset(UserName, 0, 20);
strcpy(UserName, "Admin");
UserPasswrod = 12345678;
sprintf_s(sql, "INSERT INTO user_database (Id, Name, Password) VALUES (%d, '%s', '%s')", 1, UserName, "12345678");
int exit = sqlite3_exec(my_sqlite, sql, NULL, NULL, &zErrMsg); // 测试内容到这里为止
memset(sql, 0, sizeof(sql));
sprintf_s(sql, "CREATE TABLE IF NOT EXISTS Jilu(,Time varchar(10) NOT NULL UNIQUE, KP double NOT NULL , KI double NOT NULL, KD double NOT NULL, depth_setpoint double, depth varchar(10), crpm varchar(10), mrpm varchar(10), temperature varchar(10), volt varchar(10) ");
sqlite3_exec(my_sqlite, sql, NULL, NULL, &zErrMsg);
if (sqlite3_exec(my_sqlite, sql, NULL, NULL, &zErrMsg) != SQLITE_OK)
{
MessageBox(_T("操作失败,数据库链表生成错误!"), NULL, MB_ICONSTOP);
return FALSE;
}
sqlite3_free(zErrMsg);
memset(sql, 0, sizeof(sql));
sprintf_s(sql, "INSERT INTO Jilu(Time, KP, KI,KD,depth_setpoint,crpm,mrpm,temperature,volt) VALUES ('%s',%.2lf,%.2lf,%.2lf,'%s','%s','%s','%s','%s')", "2018.5.6", K_P, K_I, K_D, "1", "1000", "990", "37", "80");
sqlite3_exec(my_sqlite, sql, NULL, NULL, &zErrMsg);
if (sqlite3_exec(my_sqlite, sql, NULL, NULL, &zErrMsg) != SQLITE_OK)
{
MessageBox(_T("插入数据失败!"), NULL, MB_ICONSTOP);
return FALSE;
}
sqlite3_free(zErrMsg);
sqlite3_close(my_sqlite); //关闭
return TRUE;
}