前提條件:Qt Creater5.4.1 、SQLServer2005 express 、 win7 32位sql
1.先搞數據源,(至於爲何,由於網上這麼說)數據庫
先在開始搜索「ODBC」,找到ODBC數據源,而後點進去express
而後點添加,找到Sql Server,點完成服務器
輸入如下內容:服務器個人是本機,而後下一步網絡
由於我沒有設置Sql Server驗證方式直接使用Windows驗證,而後下一步tcp
這裏有個更改數據庫,改爲本身想用的就好了。而後點完成就好了,(在這裏改默認數據庫)測試
以後有個測試,只要是填對了應該沒問題spa
2.找到Sql Server 配置管理器找到網絡配置,而後點開那個什麼協議,找到右邊的tcpip,而後啓動它3d
右鍵屬性設置tcp端口爲1433,只要動態端口我也沒管它,後來自動變成37178了(至於這一步有沒有必要我不知道,由於這個步驟是在前面作的,若是要驗證其必要性能夠先不設置,你看看能不能成功,若是能成功說明沒有必要設置這一步)code
3.qt代碼:建立Qt empty qmake project項目,而後添加main.cpp文件,pro文件中添加 QT += sql
還有一事要將就是前面數據源默認數據庫我改了,你本身新建一個測試數據庫,而後在ODBC數據源配置中改成新建的數據庫就好了
#include <QSql> #include <QDebug> #include <QSqlError> #include <QSqlDatabase> #include <QSqlQuery> bool OpenDatabase() { QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); //數據庫驅動類型爲SQL Server qDebug()<<"ODBC driver?"<<db.isValid(); QString dsn = QString::fromLocal8Bit("testdsn"); //數據源名稱 db.setHostName("localhost"); //選擇本地主機,127.0.1.1 db.setDatabaseName(dsn); //設置數據源名稱 //一開始我屏蔽了下邊兩行 db.setUserName("sa"); //登陸用戶 db.setPassword("root"); //密碼 if(!db.open()) //打開數據庫 { qDebug()<<db.lastError().text(); qDebug()<<"i am"; return false; //打開失敗 } else { qDebug()<<"database open success!"; QSqlQuery query(db); //查詢Card表並輸出,測試可否正常操做數據庫 query.exec("CREATE TABLE Persons(Id_P int,LastName varchar(255),dd int)"); query.exec("insert into Persons values(1,'heh',2)"); //query.exec("Create database data0723"); query.exec("delete from Persons where dd=2"); query.exec("select *from Persons"); while(query.next()) { qDebug()<<query.value(0).toInt() <<query.value(1).toString()<<query.value(2).toInt(); } }return true; } int main(int argc, char *argv[]) { if(!OpenDatabase()) return 1; }