建立FORM窗体,加个按钮控件,加一个DATAGRIDVIEW控件,双击FORM,加入命名空间using System.Data.OleDb 双击按钮,进入按钮代码。
OleDbConnectionstrConnectionnewOleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0Data Source=" + "员工信息.mdb" + "Persist Security Info=False")。
2. //建立数据库引擎连接,注意数据表(后缀为.db)应放在DEBUG文件下。
3.OleDbDataAdapter myda = new OleDbDataAdapter("select * from 。
4.trConnection) //建立适配器,通过SQL语句去搜索数据库。
5.按F5运行后,点击BUTTON按钮,便会显示相应的SQL语句下的数据库里的表。
6. string strcon = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=db4.mdb" mycon = new OleDbConnection(strcon)。
看来是个比我还新的新手。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
}
}
}
1、C/C++与数据库交互,像 mssql/ mysql / oracle 等,一般都有成熟的第三方库,这些库里面无非就是封装了与数据库通讯的方式和通讯协议搜一下要用的数据库相关的 API 文档,会说得很清楚任何文件都是二进制数据,关键是数据存储的组织方式通用扩展名的文件,像gif/doc/jpg/wav,格式都是固定的。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()
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)