CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  控件

用vb编写ADO控件对本地sql数据库进行操作,100分送!

楼主randysweet(小羊)2002-03-22 14:52:54 在 VB / 控件 提问

我在作毕业设计,是用vb编写一个ADO控件(.dll)对本地sql数据库进行各种操作,谁能提供一个详细的例子供我参考一下,小弟万分感谢!  
  不一定是控件,是一个完整程序也可以,谢谢! 问题点数:100、回复次数:11Top

1 楼ferrytang(欢迎你)回复于 2002-03-22 15:01:26 得分 0

www.21code.com  
  源代码多多Top

2 楼haisland(海是蓝的)回复于 2002-03-22 15:02:30 得分 40

控件没有,程序可以给你一个,e-mailTop

3 楼hhdsq(流氓宝宝)回复于 2002-03-22 15:02:45 得分 0

CSDN上也不少啊,你不会找不着吧?Top

4 楼VB_support(爱上有夫之妇)回复于 2002-03-22 15:07:56 得分 0

Public   Function   GetDBList()   As   Object                   '方法:获得数据表,指定数据库  
          Dim   cnn   As   New   ADODB.Connection  
          Dim   rst   As   New   ADODB.Recordset  
           
          strDatabaseUserName   =   "Sa"  
          strDatabasePassword   =   ""          
          strDatabaseUserName   =   "local"  
           
          cnn.Provider   =   "MSDataShape"  
          cnn.Open   "Data   Provider=SQLOLEDB.1;Persist   Security   Info=False;User   ID="   +   strDatabaseUserName   +   ";Password="   +   strDatabasePassword   +   ";Initial   Catalog=master;Data   Source="   &   strDatabaseServer  
   
          rst.Open   "select   *   from   sysdatabases",   cnn  
          Set   GetDBList   =   rst  
           
   
  End   Function  
           
          cnn.Provider   =   "MSDataShape"  
          cnn.Open   "Data   Provider=SQLOLEDB.1;Persist   Security   Info=False;User   ID="   +   strDatabaseUserName   +   ";Password="   +   strDatabasePassword   +   ";Initial   Catalog=master;Data   Source="   &   strDatabaseServer  
   
          rst.Open   "select   *   from   sysdatabases",   cnn  
          Set   GetDBList   =   rst  
  end   function  
   
  这是对数据库的初始连接  
  后面就可以用ado进行操作了  
  不多说了  
  自己研究吧Top

5 楼inforum(诚实做人 勤奋做事)回复于 2002-03-22 15:11:23 得分 0

用Google搜索一下定有一大片。Top

6 楼randysweet(小羊)回复于 2002-03-22 16:41:47 得分 0

我的email  
  randysweet@sohu.comTop

7 楼charise(黑码)回复于 2002-03-22 16:57:07 得分 0

www.51mis.comTop

8 楼TNT1900(不顶事)回复于 2002-04-04 14:35:32 得分 20

1、首先声明:  
  Global   Const   G_ADO_ConStr   As   String   =   _  
          "Provider=SQLOLEDB.1;User   ID=User_XXX;Password=xxx;Persist   Security   Info=False;Initial   Catalog=HR_MIS;Data   Source=XXX-SERVER"  
   
  2、然后写程序,如:  
  Public   Function   GetDepByOptn(   _  
          Optional   iOrder   As   Integer   =   1,   _  
          Optional   ID   As   Integer,   _  
          Optional   Name   As   String,   _  
          Optional   ParentID   As   Integer,   _  
          Optional   ChildID   As   Integer   _  
  )   As   ADODB.Recordset  
           
  On   Error   GoTo   ErrorProcess  
           
          Dim   strSql   As   String  
          Dim   strWhereOrAnd   As   String  
           
          Dim   Conn   As   ADODB.Connection  
          Dim   p_RS   As   ADODB.Recordset  
           
          m_SuccessOrNot   =   False  
           
          ''   Open   ADO   connection  
          Set   Conn   =   New   ADODB.Connection  
          Set   p_RS   =   New   ADODB.Recordset  
           
          ''   Build   SQL   statement  
          strSql   =   "SELECT   *   FROM   T_Department   "  
           
          ''   ID   条件组合  
          If   ID   <>   0   Then  
                  strSql   =   strSql   &   cStrWhereOrAnd(strSql)   &   "   ID   =   "   &   ID   &   "   "  
          End   If  
           
          ''   Name   条件组合  
          If   Name   <>   ""   Then  
                  strSql   =   strSql   &   cStrWhereOrAnd(strSql)   &   "   Name   like   '%"   &   Name   &   "%'   "  
          End   If  
           
          ''   ParentID   条件组合  
          If   ParentID   <>   0   Then  
                  strSql   =   strSql   &   cStrWhereOrAnd(strSql)   &   "   ParentID   =   "   &   ParentID   &   "   "  
          End   If  
           
          ''   ChildID   条件组合  
          If   ChildID   <>   0   Then  
                  strSql   =   strSql   &   cStrWhereOrAnd(strSql)   &   "   ChildID   =   "   &   ChildID   &   "   "  
          End   If  
           
          ''   结果集排列顺序  
          Select   Case   iOrder  
                  ''   Order   By   EmpID,   ID  
                  Case   1  
                          strSql   =   strSql   &   "Order   by   NAME,ID,PARENTID,CHILDID"  
                           
                  Case   Else  
                          strSql   =   strSql   &   "Order   by   ID,NAME,PARENTID,CHILDID"  
          End   Select  
           
          ''   Open   the   Connection  
          Conn.Open   G_ADO_ConStr  
           
          ''   Open   the   recordset  
          p_RS.Open   strSql,   Conn,   adOpenStatic  
           
          Set   GetDepByOptn   =   p_RS  
           
          m_SuccessOrNot   =   True                   ''   Success   Flag  
           
          Exit   Function  
       
  ErrorProcess:  
      Err.Raise   Err.Number   &   Err.Source  
      Set   GetDepByOptn   =   Nothing  
      m_SuccessOrNot   =   False                     ''   False   flag  
  End   Function  
  Top

9 楼lihonggen0(李洪根,MS MVP,标准答案来了)回复于 2002-04-04 14:47:09 得分 20

Public   adoCN   As   New   ADODB.Connection               '定义数据库的连接存放数据和代码  
  Public   adoCNAccess   As   New   ADODB.Connection   '定义数据库的连接存放数据和代码  
  Public   adoCNAccess1   As   New   ADODB.Connection   '定义数据库的连接存放数据和代码  
  Public   adoCNtemp   As   New   ADODB.Connection       '临时数据库  
  Public   SqlCommand   As   New   ADODB.Command           '定义   SQL   命令  
  Public   RsUsers   As   New   ADODB.Recordset  
  Public   RsDept   As   New   ADODB.Recordset  
  Public   Rs_Dm_Level   As   New   ADODB.Recordset  
  Dim   adoDateTime   As   New   ADODB.Recordset           '获取   NT-SERVER   时间  
  '***********************************************************************  
  '*     功能:与   SQL   SERVER   数据库建立连接并取出服务器时间  
  '***********************************************************************  
  Public   Function   OpenConnection1()   As   String   '打开数据库  
  End   Function  
   
  Public   Function   OpenConnection()   As   String   '打开数据库  
          On   Error   GoTo   SQLConErr  
          With   adoCN  
                  .CursorLocation   =   adUseClient  
                  .Provider   =   "sqloledb"  
                  .Properties("Data   Source").Value   =   cNtServerName  
                  .Properties("Initial   Catalog").Value   =   cDatabaseName  
                  .Properties("User   ID")   =   cSQLUserName  
                  .Properties("Password")   =   cSQLPassword  
                  .Properties("prompt")   =   adPromptNever  
                  .ConnectionTimeout   =   15  
                  .Open  
                   
                  If   .State   =   adStateOpen   Then  
                          adoDateTime.Open   "select   getdate()",   adoCN,   adOpenStatic,   adLockOptimistic  
                          cServerDate   =   Format(adoDateTime(0),   "yyyy-mm-dd")  
                          cServertime   =   Mid(adoDateTime(0),   10)  
                  Else  
                          MsgBox   "数据库连接失败,请找系统管理员进行检查   !",   16,   cProgramName  
                          End  
                  End   If  
          End   With  
           
          SqlCommand.ActiveConnection   =   adoCN  
          SqlCommand.CommandType   =   adCmdText  
          Exit   Function  
  SQLConErr:  
          Select   Case   Err.Number  
                  Case   -2147467259  
                          MsgBox   "找不到指定的SQL   Server服务器或者数据库不存在,请重新设置!",   vbExclamation  
                          F_SetSystem.Show   1  
                  Case   -2147217843  
                          MsgBox   "指定的SQL   Server数据库用户不存在或口令错误,请重新设置!",   vbExclamation  
                          F_SetSystem.Show   1  
                  Case   Else  
                          MsgBox   "数据环境连接失败,请找系统管理员进行检查   !",   16,   cProgramName  
          End   Select  
          OpenConnection  
  End   Function  
   
  '***********************************************************************  
  '*     功能:连接数据报表环境  
  '*  
  '***********************************************************************  
  Public   Sub   OpenDEConnection()                 '连接数据环境  
          On   Error   GoTo   DEConErr  
          With   DE_Report.Con_report  
                  If   .State   =   adStateOpen   Then  
                          .Close  
                  End   If  
                  .CursorLocation   =   adUseClient  
                  .ConnectionTimeout   =   15  
                  .ConnectionString   =   "Provider=SQLOLEDB.1;Password="   &   cSQLPassword   &   ";Persist   Security   Info=True;User   ID="   &   cSQLUserName   &   ";Initial   Catalog="   &   cDatabaseName   &   ";Data   Source="   &   cNtServerName  
                  .Open  
          End   With  
          Exit   Sub  
  DEConErr:  
          Select   Case   Err.Number  
                  Case   Else  
                          MsgBox   "数据环境连接失败,请找系统管理员进行检查   !",   16,   cProgramName  
                          End  
          End   Select  
  End   Sub  
   
  Public   Function   OpenAccess()   As   String  
          With   adoCNAccess  
                  If   .State   <>   adStateOpen   Then  
                          .ConnectionString   =   "Provider=Microsoft.Jet.OLEDB.4.0;Persist   Security   Info=False;Data   Source="   &   cProgramPath   &   "Trade.mdb"   ';password=allway"  
                          .ConnectionTimeout   =   5  
                          .Open  
                          If   .State   =   adStateOpen   Then  
                                  OpenAccess   =   "数据库连接成功"  
                          Else  
                                  OpenAccess   =   "数据库连接失败,请按帮助进行检查   !"  
                                  MsgBox   "数据库连接失败,请找系统管理员进行检查   !",   16,   cProgramName  
                                  End  
                          End   If  
                  End   If  
          End   With  
  End   Function  
   
  Top

10 楼lihonggen0(李洪根,MS MVP,标准答案来了)回复于 2002-04-04 14:48:00 得分 20

Public   Sub   Jc_Shhy_Open()  
          '业务员合同  
          With   Rs_Jc_Shhy  
                  If   .State   =   adStateOpen   Then  
                          .Close  
                  End   If  
                  .ActiveConnection   =   adoCN  
                  .CursorLocation   =   adUseClient  
                  .CursorType   =   adOpenDynamic  
                  .LockType   =   adLockBatchOptimistic  
                  '.Source   =   "SELECT   d.deptcode,d.deptname,u.staffname,j.*   FROM   Dm_Dept   d,Dm_Users   u,Jc_Shhy   j   WHERE   j.staffcode=u.staffcode   and   u.deptcode=d.deptcode   and   j.staffcode='"   &   cStaffCode   &   "'"  
                  .Source   =   "SELECT   *   FROM   Jc_Shhy   WHERE   sqr='"   &   cStaffCode   &   "'"  
                  .Open  
          End   With  
          '公司合同  
          With   Rs_Jc_Shhy_Find  
                  If   .State   =   adStateOpen   Then  
                          .Close  
                  End   If  
                  .ActiveConnection   =   adoCN  
                  .CursorLocation   =   adUseClient  
                  .CursorType   =   adOpenDynamic  
                  .LockType   =   adLockBatchOptimistic  
                  .Source   =   "SELECT   d.deptcode,   f.staffcode,   j.hth   FROM   Dm_Dept   d,   dm_users   f,   Jc_Shhy   j   WHERE   j.staffcode   =   f.staffcode   AND   d.deptcode   =   f.deptcode   "  
                  .Open  
          End   With  
  End   Sub  
  Top

11 楼llpei(骑着王八看大海)回复于 2002-04-04 14:50:46 得分 0

Public   Sub   OpenX()  
   
        Dim   cnn1   As   ADODB.Connection  
        Dim   rstEmployees   As   ADODB.Recordset  
        Dim   strCnn   As   String  
        Dim   varDate   As   Variant  
   
        '   打开连接。  
              strCnn   =   "Provider=sqloledb;"   &   _  
              "Data   Source=srv;Initial   Catalog=pubs;User   Id=sa;Password=;   "  
        Set   cnn1   =   New   ADODB.Connection  
        cnn1.Open   strCnn  
         
        '   打开雇员表。  
        Set   rstEmployees   =   New   ADODB.Recordset  
        rstEmployees.CursorType   =   adOpenKeyset  
        rstEmployees.LockType   =   adLockOptimistic  
        rstEmployees.Open   "employee",   cnn1,   ,   ,   adCmdTable  
   
        '   将第一个雇员记录的受雇日期赋值给变量,然后更改受雇日期。  
        varDate   =   rstEmployees!hire_date  
        Debug.Print   "Original   data"  
        Debug.Print   "     Name   -   Hire   Date"  
        Debug.Print   "     "   &   rstEmployees!fName   &   "   "   &   _  
              rstEmployees!lName   &   "   -   "   &   rstEmployees!hire_date  
        rstEmployees!hire_date   =   #1/1/1900#  
        rstEmployees.Update  
        Debug.Print   "Changed   data"  
        Debug.Print   "     Name   -   Hire   Date"  
        Debug.Print   "     "   &   rstEmployees!fName   &   "   "   &   _  
              rstEmployees!lName   &   "   -   "   &   rstEmployees!hire_date  
   
        '   再查询   Recordset   并重置受雇日期。  
        rstEmployees.Requery  
        rstEmployees!hire_date   =   varDate  
        rstEmployees.Update  
        Debug.Print   "Data   after   reset"  
        Debug.Print   "     Name   -   Hire   Date"  
        Debug.Print   "     "   &   rstEmployees!fName   &   "   "   &   _  
              rstEmployees!lName   &   "   -   "   &   rstEmployees!hire_date  
   
        rstEmployees.Close  
        cnn1.Close  
   
  End   Sub  
  Top

相关问题

  • 关于vb中ADo和SQL数据库的连接问题?
  • 怎样在VB里用ADO还原SQL数据库?
  • 关于VB编写中用ADO将数据打入SQL数据库的问题
  • ADO连接SQL数据库错误?
  • 求助!ado连接sql数据库
  • ADO连接SQL 数据库问题
  • ado连接远程sql数据库
  • vc访问sql数据库ado
  • 使ADO 读写SQL 数据库 问题
  • vb代码里访问sql数据库

关键词

  • 控件
  • 数据库
  • ado
  • 代码
  • 连接
  • 组合
  • 数据
  • source
  • deptcode
  • shhy

得分解答快速导航

  • 帖主:randysweet
  • haisland
  • TNT1900
  • lihonggen0
  • lihonggen0

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo