如需連接到本地SQL,請確保SQL服務(wù)正常啟動,然后執(zhí)行如下代碼:

創(chuàng)新互聯(lián)建站專注于威寧網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供威寧營銷型網(wǎng)站建設(shè),威寧網(wǎng)站制作、威寧網(wǎng)頁設(shè)計(jì)、威寧網(wǎng)站官網(wǎng)定制、小程序制作服務(wù),打造威寧網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供威寧網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
string
con,
sql;
/*Integrated
Security=SSPI
這個(gè)表示以當(dāng)前WINDOWS系統(tǒng)用戶身去登錄SQL
SERVER服務(wù)器,如果SQL
SERVER服務(wù)器不支持這種方式登錄時(shí),就會出錯(cuò)。
你可以使用SQL
SERVER的用戶名和密碼進(jìn)行登錄,如:
"Server=.;Database=YouDBName;User
ID=sa;Password=密碼"
*/
con
=
"Server=.;Database=YouDBName;Integrated
Security=SSPI";
sql
=
"select
*
from
Test";
SqlConnection
mycon
=
new
SqlConnection(con);
mycon.Open();
SqlDataAdapter
myda
=
new
SqlDataAdapter(sql,
con);
DataSet
myds
=
new
DataSet();
myda.Fill(myds,
"Test");
dataGridView1.DataSource
=
myds.Tables["Test"];
HRESULThr=sqlSp.CreateInstance(_uuidof(Connection));
if(FAILED(hr))
{
AfxMessageBox("_ConnectionPtr對象指針實(shí)例化失敗!!!");
return;
}
else{
try{
_bstr_tstrConnect="Driver={sqlserver};server=192.168.1.29;uid=sa;pwd=ebank@123;database=baoshang;";
sqlSp-Open(strConnect,"","",adModeUnknown);
}
catch(_com_errore)
{
AfxMessageBox(e.Description());
return;
}
_RecordsetPtrm_pRecordset;
if(FAILED(m_pRecordset.CreateInstance(_uuidof(Recordset))))
{
AfxMessageBox("記錄集對象指針實(shí)例化失敗!");
return;
}
try{
m_pRecordset-Open("select*fromdbo.TB_DICT_CONTTYPE",(IDispatch*)sqlSp,adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_errore)
{
AfxMessageBox(e.Description());
return;
}
try{
m_pRecordset-MoveFirst();
while(!m_pRecordset-adoEOF)
{
CStringinsertTime=(char*)(_bstr_t)(m_pRecordset-Fields-GetItem(_variant_t("F_TYPE_ID"))-Value);
AfxMessageBox(insertTime);
m_pRecordset-MoveNext();
}
}
catch(_com_errore)
{
AfxMessageBox(e.Description());
return;
}
}
擴(kuò)展資料
連接數(shù)據(jù)庫三支路
1、導(dǎo)入數(shù)據(jù)庫命名空間:
usingSystem.Data.SqlClient;
2、創(chuàng)建數(shù)據(jù)庫連接對象,并指定數(shù)據(jù)庫連接字符串:
//創(chuàng)建數(shù)據(jù)庫連接對象:SqlConnectionconn=newSqlConnection(str);
//數(shù)據(jù)庫連接字符串:Stringstr="DataSource=.;InitialCatalog=test;IntegratedSecurity=True";
3、打開與數(shù)據(jù)庫的連接:
Open.conn();
4、創(chuàng)建操作命令對象Command,并指定操作數(shù)據(jù)源以及操作命令:
//創(chuàng)建操作命令對象:SqlCommandcmd=newSqlCommand();
//操作數(shù)據(jù)源:cmd.Connection=conn;
//操作命令:cmd.CommandText="selectcount(*)fromuser_tablewhereuserName='"+uName+"'anduserPwd='"+uPwd+"'";
1、配置ODBC數(shù)據(jù)源。
2、使用SQL函數(shù)進(jìn)行連接。
對于1、配置數(shù)據(jù)源,配置完以后就可以編程操作數(shù)據(jù)庫了。
對于2、使用SQL函數(shù)進(jìn)行連接,參考代碼如下:
#includewindows.h
#includesql.h
#includesqlext.h
void main()
{
HENV henv; //環(huán)境句柄
HDBC hdbc; //數(shù)據(jù)源句柄
HSTMT hstmt; //執(zhí)行語句句柄
unsigned char datasource[]="數(shù)據(jù)源名稱"; //即源中設(shè)置的源名稱
unsigned char user[]= "用戶名"; //數(shù)據(jù)庫的帳戶名
unsigned char pwd[]= "密碼"; //數(shù)據(jù)庫的密碼
unsigned char search[]="select xm from stu where xh=0";
SQLRETURN retcode; //記錄各SQL函數(shù)的返回情況
// 分配環(huán)境句柄
retcode= SQLAllocEnv(henv); // 等介于 SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL
, henv);
// 設(shè)置ODBC環(huán)境版本號為3.0
retcode= SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
// 分配連接句柄
retcode= SQLAllocConnect(henv,hdbc); // 等介于 SQLAllocHandle(SQL_HANDLE_DBC, henv, hdbc);
//設(shè)置連接屬性,登錄超時(shí)為*rgbValue秒(可以沒有)
// SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (SQLPOINTER)(rgbValue), 0);
//直接連接數(shù)據(jù)源
// 如果是windows身份驗(yàn)證,第二、三參數(shù)可以是
,也可以是任何字串
//SQL_NTS 即 "
retcode= SQLConnect(hdbc,datasource, SQL_NTS, user, SQL_NTS , pwd, SQL_NTS );
//分配語句句柄
retcode= SQLAllocStmt(hdbc,hstmt); // 等介于 SQLAllocHandle(SQL_HANDLE_STMT, hdbc, hstmt);
//直接執(zhí)行查詢語句
retcode=SQLExecDirect(hstmt,search,SQL_NTS);
//將數(shù)據(jù)緩沖區(qū)綁定數(shù)據(jù)庫中的相應(yīng)字段(i是查詢結(jié)果集列號,queryData是綁定緩沖區(qū),BUFF_LENGTH是緩沖區(qū)長度)
SQLBindCol(hstmt, i, SQL_C_CHAR, queryData[i-1], BUFF_LENGTH, 0);
//遍歷結(jié)果集到相應(yīng)緩沖區(qū) queryData
SQLFetch(hstmt);
/*
*對遍歷結(jié)果的相關(guān)操作,如顯示等
*/
//注意釋放順序,否則會造成未知錯(cuò)誤!
SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
SQLDisconnect(hdbc);
SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
SQLFreeHandle(SQL_HANDLE_ENV, henv);
}
private?void?sqlconn()
{
SqlConncetion??conn?=?new?SqlConnection("SERVER=.;DATABASE=pubs;PWD=;UID=sa;");//server是你的數(shù)據(jù)庫地址,如local,database是你的數(shù)據(jù)庫名稱,pwd是密碼,uid是賬號
SqlConncetion?cmd?=?new?SqlCommand("SELECT*FROM?[table]",cmd);
DataSet??ds?=?new?DataSet();
SqlDataAdapter?adp?=?new?SqlDataAdapter(cmd);
adp.Fill(ds);
}
1、打開Visual Studio 2008工具,點(diǎn)擊文件菜單,選擇新建下面的項(xiàng)目選項(xiàng),如下圖所示。
2、在彈出的新建項(xiàng)目界面,選擇控制臺程序,然后點(diǎn)擊確定按鈕,如下圖所示。
3、在Program.cs界面中引入SqlClient命名空間,這個(gè)空間里包含了所有的操作SQL SERVER的功能,如下圖所示。
4、接下來實(shí)例化SqlConnection,然后通過SqlConnection實(shí)例創(chuàng)建一個(gè)連接字符串,如下圖所示。
5、然后通過Open方法連接SQL SERVER,并且輸出當(dāng)前連接的數(shù)據(jù)庫信息,如下圖所示。
6、然后運(yùn)行控制臺程序,會在輸出窗口中看到連接的數(shù)據(jù)庫信息已打印出來了,如下圖所示。
7、在操作完SQL SERVER的時(shí)候,一定要通過Close方法將數(shù)據(jù)庫關(guān)閉,如下圖所示。
本文標(biāo)題:c連接sqlserver數(shù)據(jù)庫,c連接sqlserver數(shù)據(jù)庫能寫進(jìn)信息,但讀不出信息
文章源于:http://chinadenli.net/article33/dsgjcps.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、域名注冊、品牌網(wǎng)站制作、用戶體驗(yàn)、網(wǎng)站建設(shè)、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)