vc技巧(人事管理系统)(ADO)

1. 通过#import 使用ADO

 在ADOConn.h中加入

#import "c:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")

 


 2. 连接数据库

 //添加一个指向Connection对象的指针:  _ConnectionPtr   m_pConnection;

  // 创建Connection对象   m_pConnection.CreateInstance("ADODB.Connection");

  // 设置连接字符串,必须是BSTR型或者_bstr_t类型   _bstr_t strConnect = "Provider=SQLOLEDB;Server=10.103.0.189;Database=HR;uid=sa;pwd=duanshuo";

  m_pConnection->Open(strConnect,"","",adModeUnknown);

 Server ,Database ,uid ,pwd 根据实际情况更改

 


 

 3. 在Tree控件中显示节点图标

 HTREEITEM  m_root;  //保存Tree控件的根节点  

CImageList   m_treeImageList; //定义图像列表

 m_treeImageList.Create(16,16,FALSE,1,0); //创建CImageList控件 

  HICON hIcon = ::LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON1)); //装入ICON资源

 m_treeImageList.Add(hIcon);  //将ICON资源添加到CImageList控件中 

  m_tree.SetImageList(&m_treeImageList, LVSIL_NORMAL);//将CImageList控件与   Tree控件相关联 

 m_root = m_tree.InsertItem("部门信息");  //添加根节点

 HTREEITEM m_child;   

m_child = m_tree.InsertItem("111",m_root);  //添加子节点

m_tree.InsertItem("222", m_child);

 m_tree.Expand(m_root, TVE_EXPAND); //展开根节点

 


 

4. 在Tree控件中获得节点值

 HTREEITEM node;  //用于保存当前节点

 node = m_tree.GetSelectedItem(); //取得当前节点值

 HTREEITEM parent; //读取父节点  

 parent = m_tree.GetParentItem(node);

 

 CString  m_Upper = m_tree.GetItemText(parent);  

 int  UpperId = m_tree.GetItemData(parent);  

 CString  DepId = m_tree.GetItemData(node);  

 int  DepName = m_tree.GetItemText(node);

 


 

 5. 响应单击Tree控件

 在初始化中加入:

 m_treectrl.DeleteAllItems();  

HTREEITEM hti1= m_treectrl.InsertItem("Item 1");  

hti11=m_treectrl.InsertItem("Item 11", hti1);  

hti12=m_treectrl.InsertItem("Item 12", hti1);  

hti13=m_treectrl.InsertItem("Item 13", hti1);

 

在.cpp中加入:

ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, OnSelchangedTree1)

在.h中加入:

afx_msg void OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult);

响应点击代码:

void CTreectrlDlg::OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult) {  NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;  

// TODO: Add your control notification handler code here  

HTREEITEM hItem1;  

hItem1=m_treectrl.GetSelectedItem();  

if (hItem1==hti11)  

{   AfxMessageBox("11");  }  

else if (hItem1==hti12)  

{   AfxMessageBox("12");

 }  

else if (hItem1==hti13)  

{   AfxMessageBox("13");

 } 

 *pResult = 0;

}

 


6. ADO Data控件与DataList控件

ADO Data控件:

        ADO Data 控件是使用ADO技术访问数据库的具体实现。首先,可以用ADO Data 控件快速地建立一个到数据库的连接;其次,ADO Data控件使用RECORDSET对象对存储在数据库中数据的访问;第三,ADO Data控件可以执行大部分数据库访问操作,不过它不能显示数据库中的数据,要与其它控制结合来使用。

        1. 在本程序中,在“General”选项卡中取消“Visible”选择。

        2. 在“Control”选项卡中,选择“Use Connecting String”,点击“Build...”

            在“数据链接属性”对话框下选择“Microsoft OLE DB Provider for SQL Server”。           

            在“连接”选项卡中设置服务器名称和在服务器上选择数据库,然后可以点击“测试连接”。

        3.  在“RecordSource”选项卡中,在“Command Type”中选择“2-adCmdTable”,在“Table...”中选择“Users”。

        以上步骤为“用户管理”中的方法。

 

DataList控件:

    在“All”选项卡中,为“RowSource”属性选择IDC_ADODC1,

      为“ListField”属性选择UserName。在运行时,DataList 控件显示在这个属性中所指定的字段的值。

      为“BoundColumn”属性选择User_Type。在本例中,m_datalist.GetBoundText()将返回选择的用户类型值。

你可能感兴趣的:(vc技巧(人事管理系统)(ADO))