① ubuntu linux 下使用Qt連接Mysql資料庫
Linux下完整的MySQL開發需要安裝伺服器端,如果安裝客戶端也沒什麼不好。直接在軟體中心搜mysql,把client和server選上。
環境說明:
ubuntu
10.04.2
QtSDK
(1.5G安裝包的那個)
mysql5.1
1.安裝MySQL
Linux下完整的MySQL開發需要安裝伺服器端,如果安裝客戶端也沒什麼不好。直接在軟體中心搜mysql,把client和server選上。
server在安裝時會提示為root用戶設置密碼,設一個好了。
我使用的是mysql5.1版本,用戶名密碼存儲在一個叫mysql的資料庫里,只有管理員級別才能看到。
如果直接在終端中輸入
mysql,可能會提示ERROR
1045
(28000),這是因為這時候你是以自己用戶名訪問資料庫,而目前資料庫中只有一個root用戶。沒關系,如果有必要,可以添加一個用戶進去:
mysql
-uroot
-p
--
以root用戶登錄
grant
usage
on
*.*
to
mmy@localhost;
--
授權名為mmy的用戶本地登錄,這里換成自己的用戶名就可以了
不過這時候直接mysql只有普通的許可權,創建資料庫、操作mysql都是不可以的,如果真有將其賦予管理員許可權的需要,可以自己查閱有關資料。
2.安裝Qt的MySQL驅動。
方法一:直接sudo
apt-get
install
libqt4-sql-mysql
,這是Qt4的mysql驅動,就不用自己費勁編譯了,不過可能會額外下載一些東西。
將
/usr/lib/qt4/plugins/sqldrivers/libqsqlmysql.so拷貝到你的QtSDK
sqldrivers目錄下,我當時是直接用普通許可權安裝,目錄為:~/QtSDK/Desktop/Qt/473/gcc/plugins/sqldrivers
方法二:其實你也可以sudo
apt-get
download
libqt4-sql-mysql,把包解壓縮,然後把裡面的so文件搜出來直接拷貝到那裡。
方法三:乖乖按照官方方法編譯,但是貌似可行性不大,因為新版本的QtSDK並沒有src目錄,默認也沒有mysql的驅動。
3.做個demo試一下
記得在pro文件中
QT
+=那裡加上sql,否則qmake是不會去找sql的相關部分的
復制代碼代碼如下:
#include
QtCore/QCoreApplication
#include
QSqlDatabase
#include
QDebug
int
main(int
argc,
char
*argv[])
{
QCoreApplication
a(argc,
argv);
QSqlDatabase
db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("study");
db.setUserName("root");
db.setPassword("tyh");
if(!db.open()){
qDebug()
"Unable
to
open
database";
}else{
qDebug()
"Database
connection
established";
}
return
a.exec();
}
這里study這個資料庫之前我已經創建過了,如果連接成功,就會顯示Database
connection
established。
我是建立的控制台程序哈。
軟體教程小編推薦:
Linux安裝配置MariaDB資料庫全程詳解
Linux系統怎麼設置開機密碼?
Linux啟動菜單修改教程
② qt連接sql資料庫的方法。
using System; using System.Data.SqlClient; namespace _09_01 { class Class_09_01 { public static void Main(String[] args) { // 連接字元串,讀者可以根據自己情況設置不同的值 string strConn = "Initial Catalog=Northwind;Data Source=(local);User ID=sa;Password=sa"; // SqlConnection 對象 SqlConnection conn = new SqlConnection(); conn.ConnectionString = strConn; try { // 打開資料庫連接 conn.Open(); Console.WriteLine("成功連接到資料庫!"); Console.WriteLine("數據源:{0}", conn.DataSource); Console.WriteLine("資料庫名:{0}", conn.Database); Console.WriteLine("客戶端名:{0}", conn.WorkstationId); // 在用完了資料庫連接之後記得關閉! conn.Close(); } catch (Exception e) { Console.WriteLine("無法連接到資料庫!報告異常:"); Console.WriteLine(e.Message); } } } }
③ 用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中怎樣連接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怎樣創建資料庫以及資料庫的操作
qt可以實現連接各種資料庫,這里介紹qt自帶的一種資料庫(Qsqlite)#include#include#include#include#include#include#(){QSqlDatabasedb=QSqlDatabase::addDatabase("QSQLITE");db.setDatabaseName("mytest.db");if(!db.open())returnfalse;QSqlQueryquery;//query.exec(QObject::tr("createtablestudent(idintprimarykey,namevchar)"));//query.exec(QObject::tr("insertintostudentvalues(0,'劉')"));////query.exec(QObject::tr("insertintostudentvalues(1,'剛')"));//query.exec(QObject::tr("insertintostudentvalues(2,'紅')"));//query.prepare("insertintostudentvalues(?,?)");//-------------------------------------------------------//通過下面這段代碼可以實現向資料庫插入變數//--------------------------------------------------------QVariantListages;intx1,x2,x3,x4;x1=12;x2=13;x3=14;x4=15;ages
⑥ qt如何連接sqlite資料庫
#include <QtGui/QApplication>
#include <QSqlDatabase>
#include <QtSql>
#include <QSQLiteDriver>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase(new QSQLiteDriver(),"QSQLITE");
db.setDatabaseName("test.db");
//test.db是通過SQLite程序創建的資料庫文件,當前文件夾下
if ( !db.open())
{
return 0;
}
return app.exec();
}
這是打開 後面的操作跟其他的資料庫操作一樣。還不明白可以追問。望採納 謝謝
⑦ qt連接sql資料庫的方法。
using
System;
using
System.Data.SqlClient;
namespace
_09_01
{
class
Class_09_01
{
public
static
void
Main(String[]
args)
{
//
連接字元串,讀者可以根據自己情況設置不同的值
string
strConn
=
"Initial
Catalog=Northwind;Data
Source=(local);User
ID=sa;Password=sa";
//
SqlConnection
對象
SqlConnection
conn
=
new
SqlConnection();
conn.ConnectionString
=
strConn;
try
{
//
打開資料庫連接
conn.Open();
Console.WriteLine("成功連接到資料庫!");
Console.WriteLine("數據源:{0}",
conn.DataSource);
Console.WriteLine("資料庫名:{0}",
conn.Database);
Console.WriteLine("客戶端名:{0}",
conn.WorkstationId);
//
在用完了資料庫連接之後記得關閉!
conn.Close();
}
catch
(Exception
e)
{
Console.WriteLine("無法連接到資料庫!報告異常:");
Console.WriteLine(e.Message);
}
}
}
}
⑧ 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中怎麼連接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製作用戶登錄及注冊界面,要怎樣才能把注冊界面里注冊的信息保存到資料庫,再到登錄時調用資料庫,急急
基於qt的登錄,注冊界面,注冊信息直接寫入資料庫,然後根據資料庫用戶信息驗證是否能夠登錄-Qt-based login, registration interface, registration information directly into the database, and then verify that the database user information to log