c導入資料庫
#include<mysql/mysql.h>
#include<stdio.h>
intmain()
{
MYSQL*conn;
MYSQL_RES*res;
MYSQL_ROWrow;
char*server="localhost";//本地連接
char*user="root";//
char*password="525215980";//mysql密碼
char*database="student";//資料庫名
char*query="select*fromclass";//需要查詢的語句
intt,r;
conn=mysql_init(NULL);
if(!mysql_real_connect(conn,server,user,password,database,0,NULL,0))
{
printf("Errorconnectingtodatabase:%s ",mysql_error(conn));
}else{
printf("Connected... ");
}
t=mysql_query(conn,query);
if(t)
{
printf("Errormakingquery:%s ",mysql_error(conn));
}else{
printf("Querymade... ");
res=mysql_use_result(conn);
if(res)
{
while((row=mysql_fetch_row(res))!=NULL)
{
//printf("num=%d ",mysql_num_fields(res));//列數
for(t=0;t<mysql_num_fields(res);t++)
printf("%8s",row[t]);
printf(" ");
}
}
mysql_free_result(res);
}
mysql_close(conn);
return0;
}
(1)c導入資料庫擴展閱讀
C語言使用注意事項:
1、指針是c語言的靈魂,一定要靈活的使用它:
(1)、指針的聲明,創建,賦值,銷毀等
(2)、指針的類型轉換,傳參,回調等
2、遞歸調用也會經常用到:
(1)、遞歸遍歷樹結構
(2)、遞歸搜索
B. c語言可以訪問資料庫嗎
C語言程序是完全可以訪問資料庫的。要想在C語言程序中訪問資料庫就需要使用資料庫提供的函數,把資料庫提供的頭文件包含在你的文件之中,然後調用訪問資料庫的函數就可以訪問你的資料庫了。在編譯訪問資料庫的C語言程序時候可能還需要鏈接相關的庫文件。
C. c語言怎樣連接資料庫(c語言和資料庫連接)
1、配置ODBC數據源。
2、使用SQL函數進行連接。
對於1、配置數據源,配置完以後就可以編程操作資料庫了。
對於2、使用SQL函數進行連接,參考代碼如下:
#include
#include
#include
voidmain()
{
HENVhenv;//環境句柄
HDBChdbc;//數據源句柄
HSTMThstmt;//執行語句句柄
unsignedchardatasource[]="數據源名稱";//即源中設置的源名稱
unsignedcharuser[]="用戶名";//數襲此據庫的帳戶拍野迅名
unsignedcharpwd[]="密碼";//資料庫的密碼
unsignedcharsearch[]="selectxmfromstuwherexh=0";
SQLRETURNretcode;//記錄各SQL函數的返回情況
//分配環境句柄
retcode=SQLAllocEnv(&henv);//等介於(SQL_HANDLE_ENV,SQL_NULL
,&henv);
//設置ODBC環境版本號為3.0
retcode=(henv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0);
//分配連接句柄
retcode=(henv,&hdbc);//等介於(SQL_HANDLE_DBC,henv,&hdbc);
//設置連接屬性,登錄超時為*rgbValue秒(可以沒有)
//(hdbc,SQL_LOGIN_TIMEOUT,(SQLPOINTER)(rgbValue),0);
//直接連接數據源
//如果是windows身份驗證,第二、三參數可以是
,也可以是任何字串
//SQL_NTS即"
retcode=SQLConnect(hdbc,datasource,SQL_NTS,user,SQL_NTS,pwd,SQL_NTS);
//分配語句句柄
retcode=(hdbc,&hstmt);//等介於(SQL_HANDLE_STMT,hdbc,&hstmt);
//直接執行查詢語句
retcode=(hstmt,search,SQL_NTS);
//將數據緩沖區綁定資料庫中的相應脊塵欄位(i是查詢結果集列號,queryData是綁定緩沖區,BUFF_LENGTH是緩沖區長度)
SQLBindCol(hstmt,i,SQL_C_CHAR,queryData[i-1],BUFF_LENGTH,0);
//遍歷結果集到相應緩沖區queryData
SQLFetch(hstmt);
/*
*對遍歷結果的相關操作,如顯示等
*/
//注意釋放順序,否則會造成未知錯誤!
(SQL_HANDLE_STMT,hstmt);
(hdbc);
(SQL_HANDLE_DBC,hdbc);
(SQL_HANDLE_ENV,henv);
}
D. 求一個C# Excel導入資料庫的源碼
環境:c#.2005+Access+ Sql
一、把DataTable插入資料庫
public static void DataTableToDB()
{
string _strExcelFileName = @"D:\example.xls";
DataTable dtExcel = ExcelToDataTable(_strExcelFileName,"Sheet1");
for (int i = 0; i < dtExcel.Rows.Count; i++)
{
InsertDataToAccess(dtExcel.Rows[i][0].ToString(), float.Parse(dtExcel.Rows[i][1].ToString()));
}
}
二、把Excel數據讀入DataTable
public static DataTable ExcelToDataTable(string strExcelFileName, string strSheetName)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strExcelFileName + ";" +"Extended Properties=Excel 5.0;";
string strExcel = string.Format("select * from [{0}$]", strSheetName);
DataSet ds = new DataSet();
using (OleDbConnection conn = new OleDbConnection(strConn))
{
conn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn);
adapter.Fill(ds, strSheetName);
conn.Close();
}
return ds.Tables[strSheetName];
}
三、向Access資料庫表插入數據
public static void InsertDataToAccess(string _strPara,float _fPara)
{
OleDbConnection oleDbConn = new OleDbConnection();
oleDbConn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\ExcelData.mdb;User Id=admin;Password=;";
oleDbConn.Open();
string strInsertString = "INSERT INTO tb_excelData (strCollumn1,fCollumn2) VALUES (@strCollumn1,@fCollumn2)";
OleDbCommand oComm = new OleDbCommand(strInsertString, oleDbConn);
oComm.Parameters.Add("@strCollumn1", OleDbType.Char , 50);
oComm.Parameters["@strCollumn1"].Value = _strPara;
oComm.Parameters.Add("@fCollumn2", OleDbType.Double);
oComm.Parameters["@fCollumn2"].Value = _fPara;
ocomm.ExecuteNonQuery();
oleDbConn.Close();
}
E. C璇璦鎬庝箞榪炴帴oracle鏁版嵁搴擄紵
瑕佸湪C璇璦涓榪炴帴Oracle鏁版嵁搴擄紝鎮ㄥ彲浠ヤ嬌鐢∣racle鎻愪緵鐨凮DBC錛圤pen Database Connectivity錛夋帴鍙f潵瀹炵幇銆備互涓嬫槸榪炴帴Oracle鏁版嵁搴撶殑涓鑸姝ラわ細
紜淇濇偍宸插畨瑁呬簡閫傚綋鐨凮DBC椹卞姩紼嬪簭鍜孫racle瀹㈡埛絝杞浠躲
鍦–浠g爜涓鍖呭惈蹇呰佺殑澶存枃浠訛紝濡<stdio.h>銆<stdlib.h>鍜<sql.h>銆
浣跨敤ODBC鍑芥暟錛屽係QLAllocHandle()鍜孲QLConnect()錛屽垎閰嶅拰榪炴帴鏁版嵁搴撶殑鍙ユ焺銆
閰嶇疆榪炴帴瀛楃︿覆錛屾寚瀹氭墍闇鐨勮繛鎺ュ弬鏁幫紝渚嬪傛暟鎹搴撳悕銆佺敤鎴峰悕鍜屽瘑鐮佺瓑淇℃伅銆
浣跨敤SQLExecDirect()鍑芥暟鎵ц孲QL璇鍙ユ垨璋冪敤鐩稿叧鐨凮DBC鍑芥暟鏉ユ墽琛屽叾浠栨暟鎹搴撴搷浣滐紝濡傛煡璇㈡暟鎹銆佹彃鍏ユ暟鎹絳夈
閫氳繃SQLFetch()鍑芥暟鑾峰彇鏌ヨ㈢粨鏋滈泦錛屽苟鏍規嵁闇瑕佽繘琛屽勭悊鍜岃緭鍑恆
榪欏彧鏄涓涓鍩烘湰鐨勭ず渚嬶紝瀹為檯鎯呭喌鍙鑳戒細鍥犱嬌鐢ㄧ殑緙栬瘧鍣ㄥ拰鎿嶄綔緋葷粺鑰屾湁鎵涓嶅悓銆傚緩璁鍙傝冪浉鍏崇殑Oracle鍜孫DBC鏂囨。錛屼互鍙婁嬌鐢ㄩ傚簲鎮ㄧ幆澧冪殑ODBC紺轟緥浠g爜鏉ヨ繘琛屾洿鍏蜂綋鐨勬搷浣溿
F. C語言與MySQL的連接簡明教程c與mysql連接教程
C語言與MySQL的連接簡明教程
MySQL是一種廣泛使用的關系型資料庫管理系統,而C語言是一種高效、直接、通用的編程語言。在現代軟體開發中,C語言與MySQL之間的連接已變得至關重要。在本篇文章中,我們將為您提供一份簡明教程,指導您如何在C語言中連接MySQL資料庫。
步驟一:安裝MySQL Connector庫
1. 在MySQL官方網站中下載MySQL Connector/C(即MySQL C API)。
2. 運行安裝程序並按照向導將庫安裝到您的系統中。
3. 環境變數$PATH應該可以找到MySQL Connector/C庫。你可以使用printf命令來測試。
步驟二:連接MySQL資料庫
1. 包含MySQL頭文件與鏈接庫
#include //MySQL庫文件
#include //printf函數的頭文件
#include //包含exit()函數的頭文件
int mn()
{
MYSQL mysql; //定義一個MYSQL變數
//初始化MYSQL變數
mysql_init(&mysql);
//連接MySQL伺服器
if(!mysql_real_connect(&mysql, “127.0.0.1”, “root”, “123456”, “test”, 0, NULL, 0))
{
printf(“連接失敗,錯誤代碼:%u %s\n”, mysql_errno(&mysql), mysql_error(&mysql));
exit(1);
}
printf(“連接成功\n”);
//關閉Mysql
mysql_close(&mysql);
return 0;
}
2. 連接MySQL資料庫並檢測連接是否成功。
mysql_init(&mysql); //初始化MYSQL變數
if(!mysql_real_connect(&mysql, “127.0.0.1”, “root”, “123456”, “test”, 0, NULL, 0))
{
printf(“連接失敗,錯誤代碼:%u %s\n”, mysql_errno(&mysql), mysql_error(&mysql));
exit(1); //退出
}
printf(“連接成功\n”);
步驟三:執行SQL語句
1. 在連接MySQL資料庫的基礎上,可以使用mysql_query()函數執行SQL語句。
mysql_query(&mysql,”SELECT * FROM test”); //執行SQL語句
2. 當執行SQL語句返回結果集時,可以通過mysql_store_result()函數獲取結果集。
MYSQL_RES *result; //定義結果集變數
result = mysql_store_result(&mysql); //獲取結果集
3. 如果執行的SQL語句不返回結果集,可以調用mysql_affected_rows()函數來獲取影響的行數。
int rows = mysql_affected_rows(&mysql); //影響行數
步驟四:釋放結果集與關閉MySQL
1. 釋放結果集變數。
mysql_free_result(result);
2. 關閉MySQL連接。
mysql_close(&mysql); //關閉Mysql
通過以上簡明教程,希望能為您的MySQL與C語言的連接提供一些幫助。當然,MySQL和C語言在實際應用中還有很多細節需要注意,希望大家能夠在實踐中不斷完善,開發出更加快速高效的軟體產品。
G. c語言可以連接access資料庫
#import "C:\program files\common files\system\ado\msado15.dll " no_namespace rename( "EOF ", "adoEOF ")
//#import "c:\program files\common files\system\ado\msado15.dll " rename ( "EOF ", "adoEOF ") no_namespace
#define CREATEiNSTANCE(sp,riid) { HRESULT _hr =sp .CreateInstance( __uuidof( riid ) ); \
if (FAILED(_hr)) _com_issue_error(_hr); }
#define RsITEM(rs,x) ((rs-> Fields-> Item[_variant_t(x)]-> Value))
class CHmbAdoDB
{
public:
BOOL m_bOpen;
_ConnectionPtr m_DbConn;
CString m_ErrMsg;
CString m_SQLState;
long mSqlCode;
public:
void Cancel();
BOOL IsOpen();
void RollbackTrans();
void CommitTrans();
long BeginTrans();
void Close();
BOOL Open(LPCSTR lpszConnect);
BOOL Execute(LPCTSTR lpSQL);
void ProviderError();
CHmbAdoDB()
{
}
virtual ~CHmbAdoDB()
{
}
};
class CHmbAdoDBRs : public CObject
{
public:
_RecordsetPtr m_Rs;
public:
CHmbAdoDBRs();
virtual ~CHmbAdoDBRs();
BOOL Open( CHmbAdoDB *pDB, LPCSTR szSource,long option=-1);
void Close();
void GetRs(_variant_t x,_bstr_t &ret);
void GetRs(_variant_t x,CString &ret);
BOOL IsEOF();
BOOL IsOpen();
BOOL MoveNext();
BOOL MovePrev();
BOOL MoveFirst();
BOOL MoveLast();
};
#endif // !defined(AFX_RfidAdoDB_H__7C539954_1C62_47B6_AB6E_1A5BB73A67E5__INCLUDED_) truct InitOle
{
InitOle() { ::CoInitialize(NULL); }
~InitOle() { ::CoUninitialize(); }
} _init_InitOle_;
long mSqlCode;
BOOL CHmbAdoDB::Open(LPCSTR lpszConnect)
{
try
{
CREATEiNSTANCE(m_DbConn,Connection);
m_DbConn-> Open(lpszConnect, " ", " ", adModeUnknown );
}
catch( _com_error &e)
{
return FALSE;
}
catch(...)
{
return FALSE;
}
return TRUE;
}
void CHmbAdoDB::Close()
{
if( IsOpen() )
{
m_DbConn-> Close();
}
}
long CHmbAdoDB::BeginTrans()
{
return m_DbConn-> BeginTrans();
}
void CHmbAdoDB::CommitTrans()
{
m_DbConn-> CommitTrans();
}
void CHmbAdoDB::RollbackTrans()
{
m_DbConn-> RollbackTrans();
}
void CHmbAdoDB::Cancel()
{
m_DbConn-> Cancel();
}
BOOL CHmbAdoDB::IsOpen()
{
return ( (m_DbConn-> GetState() != 0) ? TRUE : FALSE );
}
BOOL CHmbAdoDB::Execute(LPCTSTR lpSQL)
{
if (!IsOpen())
{
AfxMessageBox( "Network error, Database do not open. ");
return FALSE;
}
CString strSQL(lpSQL);
strSQL.TrimLeft();
strSQL.TrimRight();
try
{
m_DbConn-> Execute(_bstr_t(strSQL), NULL, adExecuteNoRecords);
}
catch( _com_error &e)
{
return FALSE;
}
catch(...)
{
return FALSE;
}
return TRUE;
}
void CHmbAdoDB::ProviderError()
{
// Print Provider Errors from Connection object.
// pErr is a record object in the Connection 's Error collection.
ErrorPtr pErr = NULL;
if( (m_DbConn-> Errors-> Count) > 0)
{
long nCount = m_DbConn-> Errors-> Count;
// Collection ranges from 0 to nCount -1.
for(long i = 0; i < nCount; i++)
{
pErr = m_DbConn-> Errors-> GetItem(i);
mSqlCode = pErr-> NativeError;
m_ErrMsg.Format( "SQLCODE : %ld\t%s ",mSqlCode, LPCTSTR(pErr-> Description));
m_SQLState.Format( "%s ",(char*)pErr-> SQLState);
printf( "%s // %s\n ",m_SQLState,m_ErrMsg);
}
}
m_DbConn-> Errors-> Clear();
}
CHmbAdoDBRs::CHmbAdoDBRs( )
{
}
CHmbAdoDBRs::~CHmbAdoDBRs()
{
}
BOOL CHmbAdoDBRs::Open( CHmbAdoDB *pDB, LPCSTR szSource,long option )
{
CString strSQL;
strSQL = CString(szSource);
strSQL.TrimLeft();
strSQL.TrimRight();
_variant_t vRecsAffected(0L);
// CREATEiNSTANCE( m_Rs,Recordset) ;
// m_Rs-> PutRefActiveConnection( pDB-> m_DbConn );
try
{
m_Rs = pDB-> m_DbConn-> Execute(_bstr_t(strSQL),
&vRecsAffected,
adOptionUnspecified);
m_Rs-> AddRef();
// m_Rs-> Open(szSource, vtMissing, adOpenKeyset, adLockBatchOptimistic, adOptionUnspecified);
// m_Rs-> Open(szSource, vtMissing, adOpenKeyset, adLockReadOnly, option);
// m_Rs-> Open(szSource,pDB-> m_DbConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic, adCmdText);
}
catch( _com_error &e)
{
//ErrorMessage();
m_Rs-> Close();
m_Rs-> Release();
return FALSE;
}
catch(...)
{
m_Rs-> Close();
m_Rs-> Release();
return FALSE;
}
return TRUE;
}
void CHmbAdoDBRs::Close()
{
m_Rs-> Close();
m_Rs-> Release();
}
void CHmbAdoDBRs::GetRs(_variant_t x,_bstr_t &ret)
{
ret = (m_Rs-> Fields-> Item[x]-> Value);
}
void CHmbAdoDBRs::GetRs(_variant_t x,CString &ret)
{
_bstr_t retVal;
try{
retVal = (m_Rs-> Fields-> Item[x]-> Value);
}
catch(...){
ret = " ";
return;
}
ret = CString((char*) retVal);
}
BOOL CHmbAdoDBRs::IsEOF()
{
return m_Rs-> adoEOF;
}
BOOL CHmbAdoDBRs::IsOpen()
{
return ( (m_Rs-> GetState() != 0) ? TRUE : FALSE );
}
BOOL CHmbAdoDBRs::MoveNext() { return (FAILED(m_Rs-> MoveNext()) ? FALSE : TRUE ); }
BOOL CHmbAdoDBRs::MovePrev() { return (FAILED(m_Rs-> MovePrevious()) ? FALSE : TRUE ); }
BOOL CHmbAdoDBRs::MoveFirst() { return (FAILED(m_Rs-> MoveFirst()) ? FALSE : TRUE ) ; }
BOOL CHmbAdoDBRs::MoveLast() { return (FAILED(m_Rs-> MoveLast()) ? FALSE : TRUE ) ; }
以上為一個ADO的封裝類.
c語言如何連接access資料庫
現在一般是用ADO的方法.