C语言连接数据库的代码
- 格式:doc
- 大小:46.50 KB
- 文档页数:6
-----------MySQL 连接方式-----------MySQL Connector/ODBC 2.50 (MyODBC 2.50)连接方式本地数据库连接Driver={mySQL};Server=localhost;Option=16834;Database=myDataBase;远程数据连接:Driver={mySQL};Server=myServerAddress;Option=131072;Stmt=;Database=myDataBas e; User=myUsername;Password=myPassword;特殊的TCP/IP端口连接Driver={mySQL};Server=myServerAddress;Port=3306;Option=131072;Stmt=;Database= myDataBase; User=myUsername;Password=myPassword;说明:此Driver的默认端口是3306。
如果没有在连接字符串中特别指出就是连接Mysql的3306端口。
MySQL Connector/ODBC 3.51 (MyODBC 3.51)连接方式本地数据库连接Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=myDataBase;User=myUsername;Password=myPassword;Option=3;远程数据连接Driver={MySQL ODBC 3.51Driver};Server=;Database=myDataBase;User=myUsername; Password=myPassword;Option=3;特殊的TCP/IP端口连接Driver={MySQL ODBC 3.51Driver};Server=;Port=3306;Database=myDataBase;User=myUsername; Password=myPassword;Option=3;说明:此Driver的默认端口是3306。
C#连接SQL数据库字符串⼀:C# 连接SQL数据库Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;UserID=myUsername;Password=myPassword;Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;Server=myServerName\theInstanceName;Database=myDataBase;Trusted_Connection=True;Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;1:Integrated Security参数当设置Integrated Security为 True 的时候,连接语句前⾯的 UserID, PW 是不起作⽤的,即采⽤windows⾝份验证模式。
只有设置为 False 或省略该项的时候,才按照 UserID, PW 来连接。
Integrated Security 还可以设置为:sspi ,相当于 True,建议⽤这个代替 True。
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=true;Data Source=myServerAddress;Initial Catalog=myDataBase;;User ID=myUsername;Password=myPasswordIntegrated Security=false; 2:参数Trusted_ConnectionTrusted_Connection=true,将使⽤当前的 Windows 帐户凭据进⾏⾝份验证Trusted_Connection=false;将不采⽤信任连接⽅式(也即不采⽤Windows验证⽅式),⽽改由SQL Server 2000验证⽅式Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=false;Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;3:Initial Catalog是你要连接的数据库的名字4:WINCE连接Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;UserID=myDomain\myUsername;Password=myPassword;⼆:可以利⽤SqlConnectionStringBuilder,这样不必去记住名称。
mysqlc语言接口中文说明MySQL C API 是 MySQL 数据库的 C 语言接口,它允许开发者在 C 或C++ 程序中直接使用 MySQL 数据库。
以下是一些基本的 MySQL C API 的中文说明:1. 初始化 MySQL 连接`MYSQL mysql_init(MYSQL con)`:使用已有的连接初始化一个新的连接,或如果 con 为 NULL,则初始化一个新的连接并将其返回。
2. 连接到 MySQL 服务器`my_bool mysql_real_connect(MYSQL con, const char host, const char user, const char passwd, const char db, unsigned int port, const char unix_socket, unsigned long clientflag)`:尝试连接到 MySQL 服务器。
3. 关闭 MySQL 连接`void mysql_close(MYSQL con)`:关闭与 MySQL 服务器的连接。
4. 执行 SQL 查询`MYSQL_RES mysql_query(MYSQL con, const char q)`:对 SQL 查询进行执行。
5. 获取结果集`MYSQL_RES mysql_store_result(MYSQL con)`:获取查询结果并存储在结果集中。
`MYSQL_RES mysql_use_result(MYSQL con)`:获取查询结果并立即开始读取。
6. 获取结果集中的数据`unsigned int mysql_num_rows(MYSQL_RES res)`:返回结果集中的行数。
`char mysql_fetch_row(MYSQL_RES res)`:获取结果集中的下一行。
7. 获取字段数据`unsigned int mysql_num_fields(MYSQL_RES res)`:返回结果集中的字段数。
例:创建数据库media 其中有表tb_user 列name、idnum一、连接数据库#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","rsEOF")#pragma comment(lib, "winmm.lib")_ConnectionPtr pConnection;_CommandPtr pCommand;_RecordsetPtr pRecordset;pRecordset.CreateInstance("ADODB.Recordset"); pConnection.CreateInstance("ADODB.Connection"); pCommand.CreateInstance("mand");1、打开数据库(其中用户名密码是安装数据库时设定的)_bstr_t strConnect="Provider=SQLOLEDB;Server=(local);Database=media;uid=sa; pwd=2944028a;";pConnection->Open(strConnect,"","",adModeUnknown);注:如果要连接局域网内其他电脑上的数据库_bstr_t strConnect="Provider=SQLOLEDB;Data Source=192.168.1.119;Database=media;uid=sa; pwd=2944028a;";pConnection->Open(strConnect,"","",adModeUnknown);2、打开表pRecordset->Open("SELECT * FROM tb_user",pConnection.GetInterfacePtr(),adOpenDynamic, adLockOptimistic,adCmdText);二、添加数据Char name[]=”hwm”;Char num[]=”12345”;pRecordset->AddNew(); //添加行pRecordset->PutCollect("name", _variant_t(name)); //写入数据pRecordset->PutCollect("num", _variant_t(num)); pRecordset->Update(); //更新数据库三、更改位置及判断pRecordset->MoveFirst(); //移动到第一行pRecordset->MoveNext(); //移动到下一行pRecordset->BOF //判断表是否为空pRecordset->rsEOF //判断表是否结束四、读取数据if(!pRecordset->BOF) //判断表是否为空pRecordset->MoveFirst();else { cout<<"表内数据为空";return 0; }_variant_t vname,vnum,Char name[30];Char num [30];vname = pRecordset->GetCollect("name");vnum = pRecordset->GetCollect("num");strcpy(name,(LPCSTR)_bstr_t(vname));strcpy(num,(LPCSTR)_bstr_t(vnum));五、修改数据if(!pRecordset->BOF) //判断表是否为空pRecordset->MoveFirst();else { cout<<"表内数据为空";return 0; }pRecordset->MoveNext(); //移动到想要修改的行pRecordset->PutCollect("name", _variant_t(name)); pRecordset->PutCollect("num", _variant_t(num));六、删除数据if(!pRecordset->BOF) //判断表是否为空pRecordset->MoveFirst();else { cout<<"表内数据为空";return 0; }pRecordset->MoveNext(); //移动到想要删除的行pRecordset->Delete(adAffectCurrent); //删除pRecordset->Update();。
C连接MYSQL数据库的3种方法及示例连接MYSQL数据库有多种方法,下面介绍其中三种常用的方法。
1.使用CAPI连接MYSQL数据库CAPI是官方提供的一套用于连接和操作MYSQL数据库的函数库。
使用该API,可以在C程序中直接连接MYSQL数据库,并执行各种SQL语句。
以下是一个连接MYSQL数据库的示例:```c#include <mysql.h>int maiMYSQL *conn;MYSQL_RES *res;MYSQL_ROW row;conn = mysql_init(NULL);if (conn == NULL)fprintf(stderr, "mysql_init failed\n");return 1;}if (mysql_real_connect(conn, "localhost", "user", "password", "database", 0, NULL, 0) == NULL)fprintf(stderr, "mysql_real_connect failed: %s\n", mysql_error(conn));mysql_close(conn);return 1;}if (mysql_query(conn, "SELECT * FROM table"))fprintf(stderr, "mysql_query failed: %s\n",mysql_error(conn));mysql_close(conn);return 1;}res = mysql_use_result(conn);while ((row = mysql_fetch_row(res)) != NULL)printf("%s %s %s\n", row[0], row[1], row[2]);}mysql_free_result(res);mysql_close(conn);return 0;```上述代码首先初始化MYSQL对象,然后使用mysql_real_connect函数连接MYSQL数据库。
VC连接ACCESS数据库的代码2007-02-07 21:17:51#include "stdafx.h"#include <iostream.h>#import "c:\program files\common files\system\ado\msado15.dll" \no_namespace rename ("EOF", "adoEOF")int main(){//使用ADO连接数据库...//---------------------------------------------------------------------------------_ConnectionPtr m_pConnection;CoInitialize(NULL);m_pConnection.CreateInstance(__uuidof(Connection));// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,// 因为它有时会经常出现一些想不到的错误。
try{// 打开本地Access库db1.mdbm_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb","","",adMode Unknown);}catch(_com_error e){cout<<"数据库连接失败,确认数据库db1.mdb是否在当前路径下!"<<endl;return FALSE;}//-------------------------------------------------------------------------------------//建立数据集//-------------------------------------------------------------------------------------_RecordsetPtr m_pR ecordset;m_pR ecordset.CreateInstance(__uuidof(Recordset));// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,// 因为它有时会经常出现一些意想不到的错误。
C#数据库连接字符串⽂章转载⾄:sa登陆:"Data Source=.;Initial Catalog=数据库;User ID=sa,pwd=;";windows登陆Data Source=.;Initial Catalog=数据库;Integrated Security=Truec#数据库连接字符串集合(⼀)常⽤连接:1.使⽤SqlConnection对象:a. Sql 验证public void SqlConnectionOpen(){SqlConnection conn= new SqlConnection();conn.ConnectionString = "user id=sa;password=;initial catalog=northwind;datasource=localhost;connect Timeout=20";conn.Open();}b. Windows ⾝份验证public void SqlConnectionOpen(){SqlConnection conn= new SqlConnection();conn.ConnectionString = "Integrated Security=SSPI;initial catalog=northwind;datasource=localhost;connect Timeout=20";conn.Open();}2.使⽤OleDbConnection对象:public void OleDBConnectionOpen(){OleDBConnection conn = new OleDbconnection();conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\Customer.mdb";conn.Open();}(⼆)其它:1.ODBC连接Access本地数据库conGoodDay.Open("Driver={Microsoft Access Driver(*.mdb)};"+"Dbq=C:\a.mdb;"+"Uid=Admin;"+"Pwd=;");2.ODBC连接Access系统数据库conGoodDay.Open("Driver={Microsoft Access Driver(*.mdb)};"+"Dbq=C:\a.mdb;"+"SystemDB=Admin;"+"Pwd=;");3.ODBC连接Access系统数据库conGoodDay.Open("Driver={Microsoft Access Driver(*.mdb)};"+"Dbq=\\server\share\a.mdb;");4.ODBC连接Excel系统数据库conGoodDay.Open("Driver={Microsoft Access Driver(*.xls)};"+"DriverId=790;"+"Dbq=C:\a.xls;"+"DefaultDir=c:\somepath;");5.ODBC连接Oracle系统数据库conGoodDay.Open("Driver={Microsoft ODBC for oracle};"+"Server=OracleServer.world;"+"Uid=Admin;"+"Pwd=password;");6.ODBC连接Sql ServrconGoodDay.Open("Driver={Sql Server};"+"Server=myServer;"+"Database=myDatabaseName;""Uid=Admin;"+"Pwd=password;");7.ODBC连接Visual FoxProconGoodDay.Open("Driver={Microsoft Visual FoxPro Driver};"+"SourceType=DBC;"+"SourceDB=c:a.dbc;"+"Exclusive=No;");Windows ⾝份验证建议使⽤ Windows ⾝份验证(有时也称为“集成安全性”)连接到⽀持其的数据源。
C语言数据库操作C语言是一种通用的编程语言,也可以用于数据库操作。
在C语言中,我们可以使用一些库来连接和操作数据库,比如SQLite和MySQL。
本文将介绍如何在C语言中进行数据库操作,包括连接数据库、创建表、插入和查询数据等。
1.连接数据库:要在C语言中连接数据库,我们需要引入相应的库。
例如,使用SQLite库的代码如下:```c#include <stdio.h>#include <stdlib.h>#include <sqlite3.h>int maisqlite3 *db;int rc = sqlite3_open("test.db", &db);if (rc != SQLITE_OK)fprintf(stderr, "Cannot open database: %s\n",sqlite3_errmsg(db));return 1;} elsefprintf(stdout, "Database opened successfully\n");}sqlite3_close(db);return 0;```在上面的代码中,我们首先通过调用`sqlite3_open`函数打开一个名为`test.db`的数据库。
如果打开成功,函数将返回`SQLITE_OK`。
否则,我们可以通过`sqlite3_errmsg`函数获取错误信息。
2.创建表:在连接数据库后,我们可以在其中创建表。
下面的代码演示了如何在SQLite数据库中创建表:```c#include <stdio.h>#include <stdlib.h>#include <sqlite3.h>int maisqlite3 *db;char *sql;char *errmsg = 0;int rc = sqlite3_open("test.db", &db);if (rc != SQLITE_OK)fprintf(stderr, "Cannot open database: %s\n", sqlite3_errmsg(db));return 1;} elsefprintf(stdout, "Database opened successfully\n");}sql = "CREATE TABLE COMPANY(""IDINTPRIMARYKEYNOTNULL,""NAMETEXTNOTNULL,""AGEINTNOTNULL,""ADDRESSCHAR(50),""SALARYREAL);";rc = sqlite3_exec(db, sql, 0, 0, &errmsg);if (rc != SQLITE_OK)fprintf(stderr, "SQL error: %s\n", errmsg);sqlite3_free(errmsg);} elsefprintf(stdout, "Table created successfully\n");}sqlite3_close(db);return 0;```在上面的代码中,我们使用`sql`字符串来定义一个创建表的SQL语句。
附一源码CWinApp theApp;using namespace std;CHmbAdoDBRs RfRst;CString sSql;CString seq, body, eng, tm, tl, icol, ecol, alc, bhmcdate;int i;BOOL DbOpen();BOOL CkseqtmpSelect();BOOL CkseqtmpUpdate();int PrintStatus();int SockInit();CHmbAdoDB Sqldb;int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]){int cnt = 0;int nRetCode = 0;int page = 1;int prt_ret;CString strDate, strTime;// initialize MFC and print and error on failureif (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)) {// TODO: change error code to suit your needscerr << _T("Fatal Error: MFC initialization failed") << endl;nRetCode = 1;}//DataBase Open...if(DbOpen()) cout << "DataBase Open Open Ok" << endl;else {cout << "DataBase Open Error\n" << endl;return -1;}while( 1 ) {ret = SockInit(); //建立socket连接if ( ret < 0 ) Sleep(3000);else break;}while( 1 ) {if ( CkseqtmpSelect() == FALSE ) { // CKSEQTMP FLAG03='0' SELECTSleep(3000);continue;}while( 1 ) { // PRINTER STATUS Checkprt_ret = PrintStatus();if ( prt_ret == 1 ) {closesocket(sid);WSACleanup();while( 1 ) {ret = SockInit();if ( ret < 0 ) Sleep(3000);else break;}break;}else {printf("Printer Status Check !!!\n");Sleep(3000);}}printf("%s-%s-%s-%s-%s-%s-%s-%s-%s\n", seq, body, eng, tm, tl, icol, ecol, alc, bhmcdate); memset(sbuf, 0x00, sizeof(sbuf));sprintf(sbuf, "%c%c1", ESC, W);ret = send( sid, sbuf, strlen(sbuf), 0 );if ( cnt == 0 || atoi(seq) < 2 ) {if ( atoi(seq) < 2 ) {cnt = 0;page = 1;memset(sbuf, 0x00, sizeof(sbuf));sprintf(sbuf, "%c%c%c", FF, CR, LF);ret = send( sid, sbuf, strlen(sbuf), 0 );}memset(sbuf, 0x00, sizeof(sbuf));sprintf(sbuf, " [ BUMPER ASS'Y WORK ORDER ]%c%c%c%c%c%c", CR, LF, CR, LF, CR, LF);ret = send( sid, sbuf, strlen(sbuf), 0 );strDate.Format("%s-%s-%s", bhmcdate.Left(4), bhmcdate.Mid(4,2), bhmcdate.Mid(6,2) );memset(sbuf, 0x00, sizeof(sbuf));sprintf(sbuf, " PAGE : %3d DA TE : %s%c%c", page, strDate, CR, LF);ret = send( sid, sbuf, strlen(sbuf), 0 );memset(sbuf, 0x00, sizeof(sbuf));//123456789/123456789/123456789/123456789/123456789/1234567890123456789012345678901 234567890sprintf(sbuf,"========================================================%c%c", CR, LF); ret = send( sid, sbuf, strlen(sbuf), 0 );memset(sbuf, 0x00, sizeof(sbuf));sprintf(sbuf, " SEQ BODY NO BUMP ECOL T/L ENG BHMCTIME%c%c%c%c", CR, LF, CR, LF);ret = send( sid, sbuf, strlen(sbuf), 0 );memset(sbuf, 0x00, sizeof(sbuf));sprintf(sbuf,"========================================================%c%c", CR, LF); ret = send( sid, sbuf, strlen(sbuf), 0 );}strTime.Format("%s:%s", bhmcdate.Mid(8,2), bhmcdate.Mid(10,2) );memset(sbuf, 0x00, sizeof(sbuf));sprintf(sbuf, " %-4.4s %-10.10s %-4.4s %-3.3s %-4.4s %-4.4s %-5.5s%c%c%c%c",seq, body, alc, ecol, tl, eng, strTime, CR, LF, CR, LF);ret = send( sid, sbuf, strlen(sbuf), 0 );memset(sbuf, 0x00, sizeof(sbuf));sprintf(sbuf, "--------------------------------------------------------%c%c", CR, LF);ret = send( sid, sbuf, strlen(sbuf), 0 );prt_ret = PrintStatus();if ( prt_ret == 1 ) {for ( i=0; i<3; i++ ) {// CKSEQTMP FLAG03 UPDA TEif ( CkseqtmpUpdate() == TRUE ) break;else Sleep(1000);}cnt = cnt + 1;if ( cnt > 7) { // 8 LINE PRINTmemset(sbuf, 0x00, sizeof(sbuf));sprintf(sbuf, "%c%c%c", FF, CR, LF);ret = send( sid, sbuf, strlen(sbuf), 0 );page = page + 1;cnt = 0;}}else {printf("Printer Status Check !!!\n");}Sleep(3000);}closesocket(sid);WSACleanup();Sqldb.Close();return nRetCode;}//////////////////////////////////////////////////////////////////////// DB OPENBOOL DbOpen(){if(Sqldb.Open("DSN=bjmodule;UID=sa;PWD=bjmodule")) { Sqldb.m_bOpen = TRUE;return TRUE;}else {return FALSE;}}/////////////////////////////////////////////////////////////////////////////// CKSEQTMP FLAG03='0' SELECT为什么数据库的sql server中有存储过程?它用来干什么的?大型数据库都有存储过程呀.存储过程就是一组批处理命令集.执行批处理呀.好处就是执行效率高呀,而且容易更改呀,不需要改变外部程序1.你知道dos下面的批处理么?功能差不多。
可以实现条件选择、命令流控制、批量或定制的处理数据、对其他开发语言提供接口,还有我最看重的一点:权限控制。
2.定义:一组具有一定功能的的SQL语句编译好的服务器存放在服务器的高速缓存中,用来执行一段重复性的任务!3.微软的解释:存储过程可以使得对数据库的管理、以及显示关于数据库及其用户信息的工作容易得多。
存储过程是SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。
存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。
存储过程可包含程序流、逻辑以及对数据库的查询。
它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。
可以出于任何使用SQL 语句的目的来使用存储过程,它具有以下优点:可以在单个存储过程中执行一系列SQL 语句。