這裡不具體放出完整的程式,分享兩個核心函式:
第乙個是連線資料庫的:
行內帶有詳細注釋,皆本人的見解,有理解錯的,求幫指出。
再作簡單介紹,之所有帶有int返回型別,是因為一旦連線資料庫失敗就return 0 結束程式。
形參所輸入的分別是 資料庫位址、埠,本機的埠一般是3306、資料庫名、使用者名稱、密碼,呼叫就能用了。
1int datebase::init(const
char* host, int port, const
char* database, const
char* user, const
char*password)
20//
設定事務自動提交,1為啟用自動提交
21 mysql_autocommit(&(this->conn), 1
);22 }
下面這個是在連線資料庫成功後:
特別注意,用這個之前請確認你的mysql裡面有資料表,否則會出錯!
用來獲取資料庫中表的列名,並且在依次、有順序地輸出列名後輸出所有資料的函式。
請讀者認清裡面的函式,下作簡介:
mysql_query(,) 這條是執行命令的,成功返回0,第乙個引數是連庫快取變數,第二個是命令字串;
mysql_store_result(),獲取結果集,形參是連庫快取變數,返回值是mysql res 型別的結果集快取變數;mysql_fetch_fields(),獲取表中的列名字,它返回的是mysql filed型別的陣列,用一次就能獲取所有列名,用一迴圈即可輸出所有!
mysql_num_fields(),獲取欄位的數目,就是有多少列;
mysql_fetch_row(),獲取一行的資料,這是一行哦,但是,獲取一行後會自動後移,所以用while最好!返回值是mysql row型別的變數
1void datebase::show_db()
9this->mysql_res=mysql_store_result(&(this->conn));
10 files=mysql_fetch_fields(this->mysql_res);//
獲得欄位名
11for(i=0;ithis->mysql_res);i++)
14 cout<<"\n"
;15while(mysql_row=mysql_fetch_row(this->mysql_res))
20else
21 cout<14);cout<23 cout<<"\n"
;24}25 mysql_free_result(mysql_res);//
這個是釋放記憶體
26 }
C 連線資料庫
using system using system.data using system.data.sqlclient using system.windows.forms namespace testc public void open catch exception e public void c...
c 連線資料庫
根據查詢結果儲存在資料庫伺服器端還是本地客戶端,可分兩種連線資料庫的方式 那麼這兩種方式的好壞 查詢結果儲存在資料庫伺服器 之所以要儲存在資料庫伺服器端,是因為一旦查詢結果資料量大,如果儲存在本地會占用大量的記憶體,所以該方式的優點是不佔記憶體。但對 於 資料量小情況下,還要時刻與資料庫保持連線,一...
C 連線資料庫
用sqlconnection連線sql server資料庫 引用 using dystem.data.sqlclient string constring data source ip位址 initial catalog 資料庫名稱 user id 使用者名稱 password 密碼 persist...