資料庫用的sqlite,大一連C++都沒學,void zcjm::on_pushButton_clicked()
{
if(ui->radioButton_3->isChecked())
{
QString sqlite1;
QString sqlite2;
uname=ui->lineEdit->text();
QString passwd=ui->lineEdit_2->text();
QSqlQueryModel *model1=new QSqlQueryModel;
// QSqlQueryModel *model2=new QSqlQueryModel;
sqlite1="select count (*) from student where name='"+uname+"'";
model1->setQuery(sqlite1);
QModelIndex index1=model1->index(0,0);
if(index1.data()==0)
{
QMessageBox::about(NULL,"提示","用戶注冊成功");
sqlite2="insert into student(name,password) values('"+uname+"','"+passwd+"')";
QSqlQueryModel *model=new QSqlQueryModel;
model->setQuery(sqlite2);
}
else if(index,1.data()!=0)
{
QMessageBox::about(NULL,"提示","用戶已經存在");
}
}
}
怎么實作注冊功能啊?lineedit獲取的值怎么匯入sqlite表格?
uj5u.com熱心網友回復:
你這里插入一條資料庫用戶資訊了,資料庫里就有這個用戶了啊,下一次登錄的時候直接從資料庫里查詢對應資訊,存在就說明已經注冊了uj5u.com熱心網友回復:
QString name = ui->lineEdit->text();
QString str = QString("insert into student(name) values('%1')").arg(name);
QSqlQuery query;
query.exec(str);
這樣就寫到資料庫里了
uj5u.com熱心網友回復:
QString sql="INSERT INTO student(name,password)VALUES(:name,:password)";
QString name = ui->lineEdit->text();
QString password = ui->lineEdit->text();//其實這里Password應該做下hash或者其它方式處理,不要明文保存
QSqlQuery query(database);//假定database已經設定好連接資訊
query.prepare(sqlMap["AddFileInfo"]);
query.bindValue(":name",name);
query.bindValue(":password",password);
bool success=query.exec();
if(success!=true)
{
qDebug()<<"Insert fileInfo error.Error:"<<query.lastError().text();
}
我最近一個專案里剝離出來的,引數化SQL陳述句防止SQL注入和提高效率。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/32184.html
標籤:Qt
上一篇:小白求問Listview閃退問題
下一篇:cuteReport怎么運行
