2、举个例子,连接SQL:
// 打开数据库
strDBClass.Format(_T("Provider=Microsoft.Jet.OLEDB.4.0Data Source=%sJet OLEDB:Database Password=%s"), m_strUnEntryptMdbFilePath,m_strMDBPassword)
// 创建连接
HRESULT hr = m_pConnection.CreateInstance(_uuidof(Connection))
_ConnectionPtr m_pConnection->Open(m_strDBClass,_T(""),_T(""),adConnectUnspecified)
// 声明表单指针
_RecordsetPtr pBandRecordset
pBandRecordset.CreateInstance(__uuidof(Recordset))
// 执行语句
CString strSQL(L"SELECT * FROM [Band]")
m_pConnection->Execute((LPCTSTR)strSQL,NULL,0)
// 提取某一项 例如BandInfo
int iBandInfo = wcscmp(colum, L"BandInfo")
while(!recordsetPtr->adoEOF)
{
var = recordsetPtr->GetCollect(colum)
if(var.vt != VT_NULL)
strName = (LPCSTR)_bstr_t(var)
recordsetPtr->MoveNext()
}
c语言不能连接数据库,只能用文件保存数据;我在学习的时候也曾遇到过这样的问题,请教老师,老师告诉我C语言主要用来开发系统的,还有就是用来开发游戏的。一般用文件保存数据。不会用到数据库;
要用数据库的语言有VB,java,c#,Dephi等等
看来是个比我还新的新手。dataset是内存中的数据库,从数据库中查询出来的多张表可以放在一个dataset里面,用的时候可以直接从dataset中查询,而不用再一次访问数据库(当前是在数据库没有更新前)。
下面是我写的一个专门用来连接access的类,不过这里没有加上异常捕捉。
using System
using System.Text
using System.Data
using System.Data.OleDb
namespace dbConnect
{
public class ClassOledb
{
OleDbConnection myconnection//声明连接对象
public ClassOledb(string strConn)//通过构造函数实例化连接对象
{
/*一般access的连接字符串是这样的"Provider=Microsoft.Jet.OLEDB.4.0User Id=AdminJet OLEDB:Database Password=密码Data Source=数据库名.mdb"*/
myconnection = new OleDbConnection(strConn)
}
public OleDbConnection mycon()//初始化连接字符串
{
return myconnection
}
public DataSet chaxun(string sql)//查询表并返回结果
{
myconnection.Open()
OleDbDataAdapter myadapter = new OleDbDataAdapter(sql,myconnection)
myconnection.Close()
DataSet myset = new DataSet()
myadapter.Fill(myset)//将查询的表填充到数据集(DataSet)
return myset
}
public int edit(string sql)//修改表的方法
{
int lineCount = 0//修改数据库影响的行数
myconnection.Open()
OleDbCommand mycommand = new OleDbCommand(sql,myconnection)
lineCount=mycommand.ExecuteNonQuery()
myconnection.Close()
return lineCount
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)