當前位置:首頁 » 操作系統 » qt打開資料庫

qt打開資料庫

發布時間: 2022-06-13 08:23:34

Ⅰ 怎麼在QT的類中打開一個資料庫,讓所有的對象都能夠使用

定義一個QTcpSocket對象被實例化在了前面,它是使用線路傳遞到每個窗體的指針。 QObject的類及其子類不能被復制,常常使用指針,以便用啊。

Ⅱ 如何用Qt連接資料庫並導入文件

可以使用QT自帶的資料庫完成操作,以下是參考代碼:

QsqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); //添加資料庫

db.setDatabaseName("note.db"); //創建一個note.db的文件存儲數據

db.open(); //開啟資料庫
query = QSqlQuery(db); //獲得訪問資料庫的query
query.exec(XXX); //執行指令(XXX為SQL指令)
db.close(); //關閉資料庫

一般而言會將db變數作為全局變數或者數據成員,當需要訪問的時候就獲取一個query就可以了。

要實現所提到的功能,要好好看看QString、QStringList,這兩玩意主要是臨時存放數據、分割數據等作用,另外,要看QFile、QDir、QFileInfo、QTextStream,這四個主要用來讀取文本數據。看看QVector或者QList等來存放讀出來的數據。

另外,要實現這玩意,SQL的語句不要求精通,但是基本的Create、Insert、Select、Delete等操作要准確無誤。否則出錯了QT是看不出來的。QT不會檢測SQL的准確性的。

Ⅲ 如何進入QT自待的SQLite資料庫

如何進入QT自待的SQLite資料庫
詳細操作件如下命令adb shell#cd data#cd data#ls 每個應用程序都會在這里根據包名創建一個文件夾#cd org.contact#cd databases#sqlite3 contact //進入資料庫#.schema //查看錶內容

Ⅳ 怎樣在Qt下連接讀寫sqlite資料庫

這里以學生信息的錄入與讀取來作為演示,主要目的是演示資料庫的操作,至於數據的顯示等不在演示範圍內,請您自行研究。
首先,在Qt中建立一個圖形界面的程序項目。

然後,我們在命令行下用sqlite命令創建了資料庫 C:\StudentInfo\sutdentdata.db,並且建立了一個資料庫表student,該表有四個欄位ID、Name、Sex、Age,未向表中添加任何數據。
關於sqlite的簡單使用,可以參考我們的另一篇經驗。
2SQLite的簡單使用方法

在讀寫SQLite資料庫中,我們最主要用到的是QSqlDatabase類及QSqlQuery類,前者負責創建資料庫連接並打開資料庫,後者負責執行查詢操作。實際上前者也可以進行查詢操作並將結果返回給QSqlQuery對象,但是Qt並不建議這么做。
在幹活前,依然是先看看Assitant,這是培養獨立解決問題的一個好習慣。

好,下面給 錄入 按鈕的點擊事件編寫代碼。關於如何給按鈕的某一事件進行編碼,可以參考我們另一篇經驗。
首先在.pro文件中加上sql,然後別忘了#include <QSqlDatabase>以及#include <QSqlQuery>。
好了,下面在錄入按鈕的槽中加入如下代碼:
QSqlDatabase mydb=QSqlDatabase::addDatabase("QSQLITE","wconntosqlite");
mydb.setDatabaseName("c:\\StudentInfo\\studentdata.db");
if(mydb.open())
{
QSqlQuery query(mydb);
QString sqlstr="insert into student (ID,Name,Sex,Age) values ('"
+ui->le_id->text()+"','"
+ui->le_name->text()+"','"
+ui->le_sex->text()+"',"
+ui->le_age->text()+")";
bool isok=query.exec(sqlstr);
if(isok)
qDebug()<<"數據寫入成功";
}
上面我們先調用了QSqlDatabase的靜態函數addDatabase創建了一個名為wconntosqlite的連接。然後給其傳遞資料庫名稱。
如果資料庫打開成功,就創建一個關聯的QSqlQuery對象,最後由QSqlQuery來執行插入數據工作。
特別注意:QSqlQuery對象的創建必須在mydb open成功以後才行,否則會出錯。
我們來看看效果如何。
4c++怎麼做界面

我們接著來寫查詢按鈕的代碼,輸入以下代碼:
QSqlDatabase mydb=QSqlDatabase::addDatabase("QSQLITE","rconntosqlite");
mydb.setDatabaseName("c:\\StudentInfo\\studentdata.db");
if(mydb.open())
{
QSqlQuery query(mydb);
QString sqlstr="select * from student";
bool isok=query.exec(sqlstr);
if(isok)
qDebug()<<"數據讀取成功";

query.first();
QString result="學號:"+query.value(0).toString()+" "
+"姓名:"+query.value(1).toString()+" "
+"性別:"+query.value(2).toString()+" "
+"年齡:"+query.value(3).toString();
ui->lbl_query->setText(result);
}
與寫入數據基本差不多,這里需要特別注意的是query.first();。看看Assistant怎麼說的就知道了。原來,query對象在執行完查詢語句後,query的位置被置於一個不可用的位置,如果想從query中獲取數據,需要設置query到一個可用的記錄中才行。方法有好幾種,這里我們用了first()成員函數。
好,來看看運行結果。
可以看到軟體讀取的數據與控制台窗口的數據是一致的。

我們來總結下Qt操作SQLite資料庫的五步走法決:
第一步,建立一個連接:QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE");
第二步,關聯資料庫文件:db.setDatabaseName("這里你的資料庫文件路徑")
第三步,打開資料庫:db.open()
第四步,如果資料庫打開成功,就建立一個相關聯的QSqlQuery對象:QSqlQuery query(db)
第五步,執行SQL語句:query.exec("你的SQL語句字元串")

Ⅳ qt中怎麼連接mysql資料庫

1: windows 下登陸mysql 命令行,(1)進入cmd (2) cd mysql 安裝路徑/mysqlserver5.6/bin (3) 使用命令mysql -u root -p 然後根據提示輸入密碼 進入命令行 select user(); //顯示當前用戶 2: 在同一台電腦上利用Qt 訪問資料庫 (1)顯示當前電腦上安裝的資料庫驅動 QStringList drivers = QSqlDatabase::drivers(); foreach(QString driver, drivers) qDebug() <<"/t" << driver; (2)QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");/對 QMYSQL進行操作,本函數 有第二個參數 連接名 db.setHostName("localhost");//或127.0.0.1 本主機 db.setPort(3306); db.setDatabaseName("example"); //對資料庫example進行操作 db.setUserName("wangxuetao"); //wangxuetao是一個對example資料庫有操作許可權的賬戶 db.setPassword("3791948"); 於是mysql中增加一個賬戶可使用 Grant all previliges on *.* to 『wangxuetao』@』localhost』 identified by 『3791948』 with grant option; Flush privileges; //更新 (3)db.open() 函數可由於檢測資料庫是否連接成功 cout<DBConnection(); 2. m_sqlquery = new QSqlQuery("",m_sqldb);//statement 1:connect db with sql query 3. if(result == R_OK) 4. { 5. result = m_sqlquery->exec("INSERT INTO children(fname,age) VALUES('A nn2',13)"); 6. if(!result) 7. qDebug()<<" [OK] "<<"EXEC successed"; 8. m_sqlquery->exec("SELECT * FROM children c LIMIT 0,1000"); 9. while(m_sqlquery->next()) 10. { 11. qDebug()<value(0).toString()<value(1). toString(); 12. } 13. }

Ⅵ Qt怎麼打開指定文件夾下的SQLite數據文件

首先,你的資料庫肯定是跟著你的程序跑的,你不能指定你程序一定要用戶放到D盤下面,也許用戶喜歡把程序放到E盤下面呢。所以你在指定的時候最好用相對路徑,假設你程序運行目錄是在bin下面,你可以在bin下面創建一個data目錄專門用來保存資料庫,你指定目錄的時候就可以
db.setDatabaseName("./data/student.db");//這樣指定。

Ⅶ 用qt如何連接資料庫(簡答題)

連接mysql 資料庫
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); // 使用mysql資料庫驅動
db.setHostName("localhost");
db.setDatabaseName("exampledb"); // 資料庫名稱
db.setUserName("sa"); // 用戶名
db.setPassword("1"); // 密碼
bool ok = db.open(); // 嘗試連接資料庫
if(ok)
{
QSqlQuery myquery;
if(myquery.exec("select * from employeedb"))
{
int num = 0;
if(db.driver()->hasFeature(QSqlDriver::QuerySize))
{
num = myquery.size(); // 如果支持結果影響的行數,那麼直接記錄下來
}
else
{
myquery.last(); //否則定位到結果最後
num = myquery.at() + 1;
}
//這里添加資料庫的查詢結果處理操作
}
else // 如果查詢失敗
{
QSqlError error = myquery.lastError();
}
}
else // 打開資料庫失敗
{
}

Ⅷ 如何用qt對sqlserver資料庫

qt可以使用odbc驅動去連接sqlserver,先配置好odbc數據源,然後在qt裡面調用數據源即可連接;

Ⅸ Qt Quick中如何打開一個本地資料庫

//打開資料庫
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("nmr.db");
if (!db.open())
{
QMessageBox::critical(0, qApp->tr("Cannot open database"),
qApp->tr("Unable to establish a database connection.\n"
"This example needs SQLite support. Please read "
"the Qt SQL driver documentation for information how "
"to build it.\n\n"
"Click Cancel to exit."), QMessageBox::Cancel);
return false;
}

//建個QListView顯示資料庫中的表
//顯示數據表
void MainWindow::listDb()
{
dbListModel =new QStringListModel();
dbListModel->setStringList(QSqlDatabase::database().tables());

ui->listView->setModel(dbListModel);
ui->listView->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui->listView->setResizeMode(QListView::Adjust);
connect(ui->listView,SIGNAL(clicked(QModelIndex)),this,SLOT(showDb(QModelIndex)));
}

//SLOT:數據顯示在QTabelView控制項中
void MainWindow::showDb(QModelIndex index)
{
dbName=index.data().toString();
tableViewModel=new QSqlTableModel(this);
tableViewModel->setTable(dbName);
tableViewModel->select();//???????????????????????
ui->dbTable->setSortingEnabled(true);
ui->dbTable->setModel(tableViewModel);
ui->dbTable->sortByColumn(1,Qt::AscendingOrder);
ui->dbTable->resizeColumnsToContents();
ui->dbTable->setSelectionBehavior(QAbstractItemView::SelectRows);
}

Ⅹ qt使用什麼函數打開已有的資料庫文件

槽函數是不符合正常功能相差太大時,聲明啊只是更多的關鍵字

你直接聲明一個插槽插入插槽()函數括弧中的插槽內裡面打開就可以使用的QFile文件該

熱點內容
安卓破解游戲app哪個好用貼吧 發布:2024-11-05 02:12:36 瀏覽:145
陡峭的演算法 發布:2024-11-05 02:12:00 瀏覽:752
閑散資金怎麼配置 發布:2024-11-05 02:04:46 瀏覽:922
ftp站點建立 發布:2024-11-05 02:04:45 瀏覽:32
編程音樂解碼 發布:2024-11-05 02:04:05 瀏覽:257
為什麼微信掃碼安卓手機很慢 發布:2024-11-05 01:58:01 瀏覽:534
SLSB演算法 發布:2024-11-05 01:49:44 瀏覽:130
比安卓頭子短一點的是什麼數據線 發布:2024-11-05 01:43:53 瀏覽:534
c語言多選 發布:2024-11-05 01:41:31 瀏覽:302
c語言判斷一個數是否是素數 發布:2024-11-05 01:36:32 瀏覽:833