VC中用ADO和DataGrid控件显示和更新数据库中的数据

 

VC中用ADODataGrid控件显示和更新数据库中数据。

VC6.0为例

1、             新建一对话框

在资源视图中新建一个对话框,将对话框调整到适当大小,双击对话框创建对话框类。

2、             往对话框上添加DataGrid控件

VC6中点击 Project->add to project->components and controls。在弹出的对话框中双击Registered ActiveX Controls 在弹出的控件列表中选择Microsoft DataGrid Control 6.0SP6)(OLEDB),点击insert,接下来的每一部都点确认按钮(ok按钮)。我们发现在工具箱中多了一个DataGrid控件的图标。

拖动该图标到对话框中,并且调整大小,设置属性为AllowAddNewAllowDeleteAllowUpdateColumnHeadersEnabled

DataCrid上右击用ClassWizard给对话框添加一个DataGrid变量m_dataGrid

3、             添加代码

在对话框头文件中添加如下代码#import "C://program files//common files//system//ado//msado15.dll" no_namespace rename ("EOF", "adoEOF")

在对话框头文件的对话框类中添加如下代码

_ConnectionPtr  pConnection;//数据库连接指针

_RecordsetPtr m_pRecordSet;//数据集指针

 

重载对话框OnInitDialog()函数,在其中添加如下代码

CoInitialize(NULL);                                                               //初始化Com组件 pConnection.CreateInstance(__uuidof(Connection));                 //Connection用于与数据库服务器的链接

       CString conStr;                                                                            //数据库连接字符串

       conStr.Format(_T("Driver=SQL SERVER;Database=%s;Server=%s; UID=%s;PWD=%s;"),"test","(local)","sa","sa");//注:此为ADO连接MS SQL数据库的一种方式,如果不是MS SQL数据库则连接方式不同

       /******************连接数据库********************/

       try

       {

              pConnection->ConnectionTimeout = 5;                                    //设置连接时间

              pConnection->Open(_bstr_t(conStr),"","",adModeUnknown);     //连接SQL SERVER

       }

       catch(_com_error e)                                                                     //捕捉异常

       {

              //AfxMessageBox(e.ErrorMessage());

              return -5;

       }

//创建数据集

 

 m_pRecordSet.CreateInstance("ADODB.Recordset"); 

m_pRecordSet->CursorLocation= adUseClient;

CString cmdStr;

cmdStr="select pithology as 岩性,patno as 对应花纹 from Pithology_Patno";

try

{

m_pRecordSet->Open(_variant_t(cmdStr),_variant_t((IDispatch *)pConnection,true),adOpenKeyset, 

   adLockOptimistic, adCmdUnknown);

}

catch (CException e)

{

CString emsg;

e.GetErrorMessage((LPTSTR)&emsg,1);

AfxMessageBox(emsg);

return false;

}

m_dataGrid.SetRefDataSource(NULL); 

m_dataGrid.SetRefDataSource((LPUNKNOWN)m_pRecordSet); 

m_dataGrid.Refresh(); 

 CoUninitialize();            

 

现在DataGrid控件便具有添加、删除、修改数据的功能了。

 

  • 0
    点赞
  • 2
    收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 2

打赏作者

BlueMap

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值