精华内容
下载资源
问答
  • 1.常用的数据库访问技术 1.1 proc/c++ c/c++中访问oracle数据库的技术 1.2 odbc/ado vc中访问数据库的技术 1.3 jdbc java中访问数据库的技术 2.C语言中访问MySQL数据库 linux下 API函数 windows下 odbc/ado ...

    1.常用的数据库访问技术
    1.1 proc/c++ c/c++中访问oracle数据库的技术
    1.2 odbc/ado vc中访问数据库的技术
    1.3 jdbc java中访问数据库的技术
    2.C语言中访问MySQL数据库

    1. linux下
      API函数
    2. windows下
      odbc/ado
    1. C语言连接MySQL数据库
      3.1 本地连接
      3.1.1 相关的数据类型和函数

      1. MYSQL类型
        该结构代表一个数据库连接的句柄,几乎所有的MySQL函数都会使用

      2. mysql_init()函数
        – 函数原型
        MYSQL* mysql_init(MYSQL* mysql)
        – 功能
        分配或初始化与mysql_real_connect()相适应的一个MYSQL对象.

      3. mysql_real_connect()函数
        – 函数原型
        MYSQL* mysql_real_connect(
        MYSQL* mysql, // 已有的MYSQL结构的地址
        const char* host, // 主机名或ip地址
        const char* user, // 登录名
        const char* passwd, // 密码
        const char* dbname, // 数据库名
        unsigned int port, // 端口号 0
        const char* unix_socket, // 套接字或命名管道 null
        unsigned long client_flag // 一般为 0
        );
        – 功能
        和运行在指定主机上的MySQL数据库引擎建立连接
        – 返回值
        连接成功,返回MYSQL*连接句柄.如果失败,返回NULL

      4. mysql_close()函数
        – 函数原型
        void mysql_close(MYSQL* mysql)
        – 功能
        关闭前面打开的连接

      案例:连接本机的choose数据库,用户名:root, 密码:tarena
      01conn.c

      需要的头文件: mysql/mysql.h

      链接时: gcc 01conn.c -lmysqlclient

    3.2 远程连接数据库
    案例: 使用ip地址实现远程连接
    02rconn.c

    4.DML操作
    4.1 相关的函数

    1. mysql_query()函数
      – 函数原型
      int mysql_query(MYSQL* mysql,const char* query)
      – 功能
      执行query指向的sql语句.
      – 返回值
      执行成功,返回0.如果出现错误,返回非0值
      4.2 insert语句
      案例: 向选课系统"choose"的学生表student中插入一行数据

    /设置字符集/
    mysql_query(&mysql,“set character set utf8”);

    03insert.c
    4.3 delete语句
    案例:根据学号删除学生信息
    04delete.c
    4.4 update语句

    1. select操作
      5.1 相关的函数
    1. mysql_store_result()函数

    数据类型: MYSQL_RES 结果集

    – 函数原型
    MYSQL_RES* mysql_store_result(MYSQL* mysql)
    –功能
    对于检索了数据的操作(select show desc等),将查询的结果集读取到客户端
    – 返回值
    成功时,返回MYSQL_RES结果集,出现错误时,返回NULL

    1. mysql_free_result()函数
      – 函数原型
      void mysql_free_result(MYSQL_RES* res)
      – 功能
      释放结果集
    2. mysql_num_fields()函数
      – 函数原型
      unsigned int mysql_num_fields(MYSQL_RES* res)
      – 功能
      返回结果集中的列数
    3. mysql_num_rows()函数
      – 函数原型
      my_ulonglong mysql_num_rows(MYSQL_RES* res)
      – 功能
      返回结果集中的行数
    4. mysql_field_count()函数
      – 函数原型
      unsigned int mysql_field_count(MYSQL* mysql)
      – 功能
      返回查询的列数
      当执行的是dml操作时,返回0
    5. mysql_affected_rows()函数
      – 函数原型
      unsigned int mysql_affected_rows(MYSQL* mysql)
      – 功能
      返回执行dml操作时,影响的行数

    案例:05select.c

    1. mysql_fetch_fields()函数
      – 函数原型
      MYSQL_FIELD* mysql_fetch_fields(MYSQL_RES* res)
      – 功能
      对于结果集,返回所有MYSQL_FIELD结构的数据,数组中的每个元素提供了结果集中一个字段的信息

    MYSQL_FIELD: 该结构中包含了关于字段的信息,包括字段名、类型、大小等。
    char* name
    char* table
    char* db

    1. mysql_fetch_row()函数
      – 函数原型
      MYSQL_ROW mysql_fetch_row(MYSQL_RES* res)
      – 功能
      检索结果集中的下一行

    案例:06select.c

    练习:查询所有学生及其所在班级的信息,列出学号、姓名和班级名称
    案例:07select.c

    6.错误处理
    6.1 相关的函数

    1. mysql_errno()函数
      – 函数原型
      unsigned int mysql_errno(MYSQL* mysql)
      – 功能
      返回最近调用的mysql_xxx()API函数的错误代码
      没有错误返回0
    2. mysql_error()函数
      – 函数原型
      const char* mysql_error(MYSQL* mysql)
      – 功能
      对于最近执行的mysql_xxx()API函数 ,如果错误,返回包含错误信息的字符串,没有错误时 ,返回NULL

    综合案例:实现一个迷你型的学生管理系统。功能如下:
    1.添加学生
    2.根据学号修改学生信息
    3.根据学号删除学生信息
    4.显示学生列表
    5.根据学号检索学生信息
    0.退出
    代码见Student.c

    #include <stdio.h>
    #include <stdlib.h>
    #include <mysql/mysql.h>
    void addstu(MYSQL mysql);    // 添加学生
    void modifystu(MYSQL mysql); // 修改学生信息
    void delstu(MYSQL mysql);    // 删除指定学生
    void stulist(MYSQL mysql);   // 显示学生列表
    void searchbyno(MYSQL mysql);// 查询指定学生信息
    int main(){
        int option;  // 接收用户的选项
        MYSQL mysql;
        mysql_init(&mysql);
        if(!(mysql_real_connect(&mysql,"localhost","root","tarena","choose",0,NULL,0))){
            printf("连接失败,%s\n",mysql_error(&mysql));
            return -1;
        }
        // 设置字符集
        mysql_query(&mysql,"set character set utf8");
        while(1){
            printf("\n\t学生管理系统\n");
            printf("1.添加学生\n");
            printf("2.修改学生信息\n");
            printf("3.删除学生\n");
            printf("4.学生列表\n");
            printf("5.查询指定学生信息\n");
            printf("0.退出\n");
            printf("请选择:");
            scanf("%d",&option);
            switch(option){
            case 1:
                printf("学生管理系统--添加学生\n");
                addstu(mysql);
                break;
            case 2:
                printf("学生管理系统--修改学生信息\n");
                modifystu(mysql);
                break;
            case 3:
                printf("学生管理系统--删除学生\n");
                delstu(mysql);
                break;
            case 4:
                printf("学生管理系统--学生列表\n");
                stulist(mysql);
                break;
            case 5:
                printf("学生管理系统--查询指定学生信息\n");
                searchbyno(mysql);
                break;
            case 0:
                printf("退出学生管理系统\n");
                mysql_close(&mysql);// 关闭数据库连接
                exit(0);
            }
        }
        return 0;
    }
    // 添加学生
    void addstu(MYSQL mysql){
        char stuno[15];
        char stuname[15];
        char phone[15];
        int c_no;
        char sqlstr[200];
        printf("请输入学生的学号:");
        scanf("%s",stuno);
        printf("请输入学生的姓名:");
        scanf("%s",stuname);
        printf("请输入联系方式:");
        scanf("%s",phone);
        printf("请人数班号:");
        scanf("%d",&c_no);
        sprintf(sqlstr,"insert into student values('%s','%s','%s',%d)",stuno,stuname,phone,c_no);
    //    printf("%s\n",sqlstr);
        if(mysql_query(&mysql,sqlstr)){
           printf("添加学生失败,%s\n",mysql_error(&mysql));
        }
        else{
           printf("添加学生成功\n");
        }
    }
    // 修改学生信息
    void modifystu(MYSQL mysql){
        char stuno[15];
        char stuname[15];
        char phone[15];
        int c_no;
        char sqlstr[200];
        printf("请输入要修改学生的学号:");
        scanf("%s",stuno);
        printf("请输入学生的姓名:");
        scanf("%s",stuname);
        printf("请输入联系方式:");
        scanf("%s",phone);
        printf("请输入班号:");
        scanf("%d",&c_no);
        sprintf(sqlstr,"update student set student_name='%s',student_contact='%s',class_no=%d where student_no='%s'",stuname,phone,c_no,stuno);
    //    printf("%s\n",sqlstr);
        if(mysql_query(&mysql,sqlstr)){
           printf("修改学生失败,%s\n",mysql_error(&mysql));
        }
        else{
           printf("修改学生成功\n");
        }
    }
    // 删除指定学生信息
    void delstu(MYSQL mysql){
        char stuno[15];
        char sqlstr[200];
        printf("请输入要删除学生的学号:");
        scanf("%s",stuno);
        sprintf(sqlstr,"delete from student where student_no='%s'",stuno);
    //    printf("%s\n",sqlstr);
        if(mysql_query(&mysql,sqlstr)){
           printf("删除学生失败,%s\n",mysql_error(&mysql));
        }
        else{
           printf("删除学生成功\n");
        }
    }
    // 显示学生列表
    void stulist(MYSQL mysql)
    {
        unsigned int num_fields,num_rows;
        MYSQL_RES* res;
        MYSQL_FIELD* fields;
        MYSQL_ROW row;
        mysql_query(&mysql,"select student_no 学号,student_name 姓名,student_contact 联系方式,class_no 班号 from student");
        res = mysql_store_result(&mysql);
        if(res){
            num_fields=mysql_num_fields(res);// 列数
            num_rows=mysql_num_rows(res);    // 行数
            fields = mysql_fetch_fields(res);// 列的信息
            // 输出列名
            for(int i=0;i<num_fields;i++){
                printf("%s\t",fields[i].name);
            }
            printf("\n--------------------------------\n");
            // 输出结果集中的数据
            for(int i=0;i<num_rows;i++){
                row = mysql_fetch_row(res);
                for(int j=0;j<num_fields;j++){
                    printf("%s\t",row[j]);
                }
                printf("\n");
            }
            mysql_free_result(res);// 释放结果集
        }
    }
    // 查询指定学生信息
    void searchbyno(MYSQL mysql){
        unsigned int num_fields,num_rows;
        MYSQL_RES* res;
        MYSQL_FIELD* fields;
        MYSQL_ROW row;
        char stuno[15];
        char sqlstr[200];
        printf("请输入要查询的学生的学号:");
        scanf("%s",stuno);
        sprintf(sqlstr,"select student_no 学号,student_name 姓名,student_contact 联系方式,class_no 班号 from student where student_no='%s'",stuno);
        mysql_query(&mysql,sqlstr);
        res = mysql_store_result(&mysql);
        if(res){
            num_fields=mysql_num_fields(res);// 列数
            num_rows=mysql_num_rows(res);
            if(!num_rows){
                printf("要查询的学生不存在\n");
                return;
            }
            fields = mysql_fetch_fields(res);// 列的信息
            // 输出列名
            for(int i=0;i<num_fields;i++){
                printf("%s\t",fields[i].name);
            }
            printf("\n--------------------------------\n");
            // 输出结果集中的数据
            row = mysql_fetch_row(res);
            for(int i=0;i<num_fields;i++){
                printf("%s\t",row[i]);
            }
            printf("\n");
            mysql_free_result(res);// 释放结果集
        }
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    展开全文
  • ODBC提供了一种编程接口,可以使用一个ODBC应用程序访 问各种数据库管理系统,例如Access、MySQL、DB2、FoxPro、SQL Server和Oracle等,它是第一个使用SQL访问不同关系数据库的数据访问技术。使用ODBC应用程序能够.....

    ODBC(Open Database Connectivity):

    是Microsoft公司开发和定义的一套数据库访问标准,称为开放数据库系统互联。ODBC提供了一种编程接口,可以使用一个ODBC应用程序访 问各种数据库管理系统,例如Access、MySQL、DB2、FoxPro、SQL Server和Oracle等,它是第一个使用SQL访问不同关系数据库的数据访问技术。使用ODBC应用程序能够通过单一的命令操纵不同的数据库,而开 发人员需要做的仅仅只是针对不同的应用加入相应的ODBC驱动。
      
    DAO(Data  Access Objects):

    不像ODBC那样是面向C/C++程序员的,它是微软提供给Visual Basic开发人员的一种简单的数据访问方法,但不提供远程访问功能。


    RDO(Remote Data Object):

    在使用DAO访问不同的关系型数据库的时候,Jet引擎不得不在DAO和ODBC之间进行命令的转化,导致了性能的下降,而RDO(Remote Data Objects)的出现就顺理成章了。
      
    OLE DB(Object Linking and Embedding DataBase):

    OLE DB(对象链接和嵌入数据库)随着越来越多的数据以非关系型格式存储,需要一种新的架构来提供这种应用和数据源之间的无缝连接,基于COM(Component Object Model)的OLE DB应运而生了。
      
    ADO(ActiveX Data Object):

    基于OLE DB之上的ADO更简单、更高级、更适合Visual Basic程序员,同时消除了OLE DB的多种弊端,取而代之是微软技术发展的趋势。

     

     ADO.NET

    是一种基于标准的程序设计模型,可以用来创建分布式应用以实现数据共享。在ADO.NET中,DataSet占据重要地位,它是数据库里部分数据在 内存中的拷贝。与ADO中的RecordSet不同,DataSet可以包括任意个数据表,每个数据表都可以用于表示自某个数据库表或视图的数据。 DataSet驻留在内存中,且不与原数据库相连,即无需与原数据库保持连接。完成工作的底层技术是XML,它是DataSet所采用的存储和传输格式。 在运行期间,组件 (如某个业务逻辑对象或asp.net web表单)之间需要交换DataSet中的数据。数据以XML文件的形式从一个组件传输给另一个组件,由接收组件将文件还原为DataSet形式。 DataSet的有关方法与关系数据模型完全一样

     

         因为各个数据源的协议各不相同,我们需要通过正确的协议来访问数据源。有些比较老的数据源用ODBC协议,其后的一些数据源用OleDb协议,现在,仍然 还有许多新的数据源在不断出现,ADO.NET提供了访问数据源的公共方法,对于不同的数据源,它采用不同的类库。这些类库称为Data Providers,并且通常是以数据源的类型以及协议来命名的

    转载于:https://www.cnblogs.com/zxhome/p/4131046.html

    展开全文
  • 采用在MFC中添加ADO对象,生成可供UG调用动态链接库方法,实现UG与SQL数据库的连接,解决了如何在UG中快速、高效地实现对数据库进行...通过采煤机常用参数查询系统实例验证了使用ADO技术在UG中访问数据库的可行性。
  • 通过对目前主要的基于J2EE的业务系统的分析,总结出四种常用的基于Struts的数据库应用开发框架,详细介绍了每种框架下的开发流程及优缺点。根据应用系统的规模和功能,阐明了选择合理架构的依据。并在实际应用中做了...
  • SQL学习笔记:常用数据库访问技术

    千次阅读 2009-08-20 15:45:00
    在这之前,我也找了很多SQL方面的书籍,说实话个人觉得,在程序设计这方面,我们并不需要了解SQL太多的知识,因为我们不是要做专业的数据库管理员,所以没必要找将那些专业的SQL书籍从头到尾一字不漏的读懂。...

          在这之前,我也找了很多SQL方面的书籍,说实话个人觉得,在程序设计这方面,我们并不需要了解SQL太多的知识,因为我们不是要做专业的数据库管理员,所以没必要找将那些专业的SQL书籍从头到尾一字不漏的读懂。

     

          正如李小龙的《截拳道》,他从格斗实战出发,以咏春拳为技术基础,结合空手道、跆拳道、泰拳、菲律宾拳术、柔术、击剑等26种全世界的武道精华,汲取中西方哲学及中国传统武术思想精髓,以武入哲,去其枝叶,化繁为简......(有点扯远了,少砸几个鸡蛋噢!)

     

          微软SQL数据库也是一样,我们不是需要去做专业的“数据库管理员”,所以只需要了解他提供的接口及使用方法即可。这便是我们需要了解的数据库访问技术,翻阅很多资料后,微软的数据访问技术大体有以下几类:

     

      一、UDA(UniversalDataAccess)  
      这是微软提供的通用数据访问策略。包括ADO、OLEDB和ODBC。它不光提供了数据库的访问能力,对于其它的数据存储技术也同样支持,如目录服务、Excel的表格数据和Exchange服务器数据等。  
       
      二、ODBC(OpenDatabaseConnectivity)  
      这是目前公认的最好的数据访问技术。ODBC结构包含了一个普通的基于SQL的API,它利用对应的驱动程序来开发特定的数据库程序。该技术市场巨大,并且对现在的任何数据库都支持,所以,ODBC仍会在长时期内使用。(注:不敢苟同)  
       
      三、RDO(RemoteDataObjects)  
      它为ODBC提供了一个COM的封装。其目的是简化ODBC的开发和在VisualBasic和VBA程序中发展ODBC。  
       
      四、Jet  
      Jet是安装在MS   Access中的数据库引擎。Jet支持MS   Access本身的MDB数据库和ODBC。  
       
      五、DAO(DataAccessObjects)  
      它是另一个基于COM的数据访问API。DAO提供了对Jet和ODBC的封装。  
       
      六、ODBCDirect  
      ODBCDirect微软后来为DAO添加的对ODBC的直接访问。强于通过Jet对ODBC进行支持。  
       
      七、OLEDB  
      这是一种普通和简化的基于COM的数据访问规则和API。OLEDB被设计成为独立于特殊的数据库后端和底层结构,并且它是微软最新的数据连接方案。OLE   DB   Providers可以通过OLEDB与任何数据存储建立链接。  
       
      八、ADO(ActiveXDataObjects)  
      ADO为开发者提供了一个更加友好的对OLEDB的封装。(还是这个最好)  
       
      九、RDS(RemoteDataServices)  
      这是一个为建立多用户系统而基于ADO对ADO数据源进行远程访问的技术。RDS过去是ADC(AdvancedDataConnector)。  
       
      十、MDAC(MicrosoftDataAccessComponents)  
      MDAC是经过验证的分布式UDA的实现和文件。包括四种不同的技术:ODBC、OLEDB、ADO和RDS

     

     

          但实际项目中,我们常用的也许只有ADO、ODBC、DAO等,当然对上面这些只是稍作了解就行,毕竟熟悉其中普遍的那种就够了。另外,这十种访问技术的区别可以自行查找相关资料!

     

    展开全文
  • 说明:前面(一)(二)总结了数据库连接概念以及连接数据库的字符串中各个参数含义。这篇随笔介绍connection对象的常用方法。 Connection对象的常用方法 Connection类型对象用来连接数据源。在不同...

    说明:前面(一)(二)总结了数据库连接的概念以及连接数据库的字符串中的各个参数的含义。这篇随笔介绍connection对象的常用方法。

     Connection对象的常用方法

        Connection类型的对象用来连接数据源。在不同的数据提供者的内部,Connection对象的名称是不同的,在SQL Server Data Provider里叫SqlConnection,而在OLE DB Data Provider里叫OleDbConnection。

        下面将详细介绍Connection类型对象的常用方法。

      1.构造函数

        构造函数用来构造Connection类型的对象。对于SqlConnection类,其构造函数说明如下表所示。

     

    函数定义

    参数说明

    函数说明

    SqlConnection() 

    不带参数

    创建SqlConnection对象

    SqlConnection(string connectionstring)

    连接字符串

    根据连接字符串,创建SqlConnection对象

     

     

     

     

     

     

    复制代码

     1 第1种:
     2 
     3 String ConnectionString =”server=(local); Initial Catalog =stu;  ”;
     4 
     5 SqlConnection conn=new SqlConnection();
     6 
     7 conn.ConnectionString=ConnectionString;
     8 
     9 conn.Open();
    10 
    11 第2种
    12 
    13 String cnn=”server=(local); Initial Catalog =stu;  ”;
    14 
    15 SqlConnection conn=new SqlConnection(cnn);
    16 
    17 conn.Open();

    复制代码

     

    显然使用第2种方法输入的代码要少一点,但是两种方法执行的效率并没有什么不同,另外,

    如果需要重用Connection对象去使用不同的身份连接不同的数据库时,使用第一种方法则非常有效。

    例如:

    复制代码

     1 SqlConnection conn=new SqlConnection();
     2 
     3 conn.ConnectionString=connectionString1;
     4 
     5 conn.Open();
     6 
     7 //访问数据库,做一些事情
     8 
     9 conn.Close();
    10 
    11 conn.ConnectionString=connectionString2;
    12 
    13 conn.Open();
    14 
    15 //访问数据库,做另外一些事情
    16 
    17 conn.Close();

    复制代码

     

    注意:只有当一个连接关闭以后才能把另一个不同的连接字符串赋值给Connection 对象。

    如果不知道Connection对象在某个时候是打开是关闭时,可以检查Connection对象的State属性,它的值可以是Open,也可以是Closed,这样就可以知道连接是否是打开的。

    下表说明了OleDbConnection类的构造函数。可以看出,它们和SqlConnection类的构造函数非常相近。

     

    函数定义

    参数说明

    函数说明

    OleDbConnection()

    不带参数

    创建OleDbConnection对象

    OleDbConnection(string connectionstring)

    连接字符串

    根据连接字符串,创建OleDbConnection对象

     

      

     

     

     

     

      2.OpenClose方法

    Open和Close方法分别用来打开和关闭数据库连接,无参无返回值。

    Open方法:使用ConnectionString所指定的属性设置打开数据库连接

    Close方法:关闭与数据库的连接,这是关闭任何打开连接的首选方法

    注意:数据库连接是很有价值的资源,因为连接要使用到宝贵的系统资源,如内存和网络带宽,因此对数据库的连接必须小心使用,

    要在最晚的时候建立连接(调用Open方法),在最早的时候关闭连接(调用Close方法)。

    也就是说在开发应用程序时,不再需要数据连接时应该立刻关闭数据连接。

    这点看起来很简单,要达到这个目标也不难,关键是要有这种意识。 

    3、Connection对象连接数据源代码示例

        以下代码演示使用连接字符串创建数据库连接的一般方式。

    复制代码

     1 //连接Access数据库
     2 
     3 string connStr="Provider= Microsoft.Jet.OleDB.4.0;Data Source=D:\login.mdb"
     4 
     5 //根据字符串创建OleDbConnection连接对象
     6 
     7 OleDbConnection  objConnection=new  OleDbConnection(strConnect);      
     8 
     9 //打开数据源连接
    10 
    11 if(objConnection.State==ConnectionState.Closed)
    12 
    13 {
    14 
    15 objConnection.Open();
    16 
    17 }
    18 
    19 //使用结束后关闭数据源连接
    20 
    21 if(objConnection.State==ConnectionState.Open)
    22 
    23 {
    24 
    25 objConnection.Close();
    26 
    27 }

    复制代码

     

    在这段代码里的业务逻辑是:

        (1)创建连接字符串,从中可以看出Connection对象是使用OleDB类型的Data Provider,连接到D盘下login.mdb的Access数据库中。

        (2)根据连接字符串,创建Connection类型的对象,这里用到了OleDbConnection。

        (3)打开数据源的连接。

        (4)执行数据库的访问操作代码。

      (5)关闭数据源连接。

     

    完整案例 

    1、利用SQL Server2000建立一个数据库Student,并建立相应的表studentInfo

    2、用Visual C#20XX建立一个基于Window的应用程序,并添加一个按钮。 

    3、双击按钮,自动切换到后台代码编辑文件Form1.cs中,并自动添加了与此按钮的Click事件相关的处理程序button1_Click(object sender, EventArgs e)

    4、在Form1.cs文件中添加如下命名空间:

       using System.Data.SqlClient;

    5、在事件处理程序button1_Click中添加代码:

    复制代码

    using System;
    
    using System.Collections.Generic;
    
    using System.ComponentModel;
    
    using System.Data;
    
    using System.Drawing;
    
    using System.Text;
    
    using System.Windows.Forms;
    
    using System.Data.SqlClient;
    
    namespace DataBase
    
    {
    
        public partial class Form1 : Form
    
        {
    
            public Form1()
    
            {
    
                InitializeComponent();
    
            }
    
            private void button1_Click(object sender, EventArgs e)
    
            {
    
                try
    
                {
    
                    SqlConnection conn = new SqlConnection();
    
                    //conn.ConnectionString = "server=(local);user id=sa;Initial Catalog=Student;pwd=;";
    
                    conn.ConnectionString = "server=(local);Initial Catalog=Student;Integrated Security=SSPI;";
    
                    conn.Open();
    
                    if (conn.State == ConnectionState.Open)
    
                    {
    
                        MessageBox.Show("连接已经打开");
    
                    }
    
                    conn.Close();
    
                    if (conn.State == ConnectionState.Closed)
    
                    {
    
                        MessageBox.Show("连接已经关闭");
    
                    }
    
                }
    
                catch (Exception ex)
    
                {
    
                    MessageBox.Show("数据库连接失败" + ex.Message);
    
                }
    
            }
    
        }
    
    }

    复制代码

     

    展开全文
  • 和数据库 本章将介绍数据库的基本概念以及数据库访问技术常用的数据库有Access和SQL Server两种数据库本章主要采用Access数据库一方面是因为Access数据库简单易学另一方面是在没有SQL Server服务器的情况下依然可以...
  • 1、负载均衡技术   负载均衡集群是由一组相互独立计算机系统构成,通过常规网络或专用网络进行连接,由路由器衔接在...在这里,它截断了数据库和程序直接连接,由所有程序来访问这个中间层,然后再由中间层来
  • Command对象的常用方法 说明:上篇总结了Command对象几个数据成员,这节总结Command对象的常用方法。  同样,在不同数据提供者内部,Command对象名称是不同,在SQL Server Data Provider里叫...
  • 常用的数据库访问技术有如下几种1. ODBC——开放数据库互联ODBC为使用不同的关系数据库提供了一个统一的程序设计接口。在安装不同的数据库后,需要创建ODBC数据源,2. DAO——数据访问对象3. RDO——远程数据...
  • JDBC数据库访问技术

    千次阅读 2014-03-09 23:11:25
    软件的本质就是处理数据,而在商业应用中,数据往往需要专门的数据库来存放。所以在软件开发 过程中,几乎所有的项目都要使用到数据库。那么在 Java 项目中是如何对数据库进行操作的呢?这就需 要用到 Java 数据库...
  • vc访问数据库的方法

    2012-10-27 15:46:47
    常用的数据库访问技术有如下几种 1. ODBC——开放数据库互联 ODBC为使用不同的关系数据库提供了一个统一的程序设计接口。在安装不同的数据库后,需要创建ODBC数据源, 2. DAO——数据访问对象 3. RDO——远程数据...
  • 常用数据库加密技术

    千次阅读 2007-08-14 16:22:00
    常用数据库加密技术密码等办法对数据库的增加、删除这些数据访问加以控制,防止不合法用户读写数据。但由于DBF文件采用是ASCII明文存储,如果非法用户不使用程序读取数据,而是直接使用WINHEX、UltreaEdit等工具--...
  • VC访问数据库技术的方法实例(转)

    千次阅读 2009-03-03 20:54:00
    常用的数据库访问技术有如下几种 1.ODBC——开放数据库互联 ODBC为使用不同的关系数据库提供了一个统一的程序设计接口。在安装不同的数据库后,需要创建ODBC数据源, 2.DAO——数据访问对象 3.RDO——远程数据...
  • Oracle数据库常用技术

    2016-04-08 10:48:00
    一、视图(重点) 什么是视图? ·视图由一个或多个表(或视图)中提取数据而成 ...·限制数据库访问 ·在相同数据上提供不同视图,便于数据共享 命名规范: ·以V开头,后加视图名:VEMP10...
  • ASP数据库访问技术(二)l Recordset对象 虽然使用Execute方法已经可以实现对数据库的各种操作,但是在编程中我们更常用的还是RecordSet对象,ADO中的内建对象 RecordSets是数据库访问的主要接口,它指向数据表中...
  • 2.1 ADO.NET概述 2 2.1.1 ADO.NET体系结构 2 2.1.2 ADO.NET对象模型 3 2.2 Connection 对象与...2.8 DataGrid控件与数据库访问技术 47 2.8.1 DataGrid控件与数据绑定 47 2.8.2 DataGrid代码示例 48 2.9 本章小结 49
  • VC访问数据库技术(以Postgre为例)

    千次阅读 2008-05-12 13:19:00
    源代码:参考我的资源中“VC访问Postgre数据库” 最常用的数据库访问技术有如下几种1. ODBC——开放数据库互联ODBC为使用不同的关系数据库提供了一个统一的程序设计接口。在安装不同的数据库后,需要创建ODBC数据...
  • 使用DataSet对象访问数据库  当对DataSet对象进行操作时,DataSet对象会产生副本,所以对DataSet里数据进行编辑操作不会直接对数据库产生影响,而是将DataRow状态设置为added、deleted或changed,最终更新...
  • 2.2 Connection 对象与数据库连接 在不同的Provider类型下,Connection对象的...Connectionion对象主要用于连接数据库,它的常用的属性如下。 ConnectionString属性:该属性用来获取或设置用于打开SQL Server数...
  • 五大常用数据库的应用领域介绍

    千次阅读 2021-02-14 14:46:33
    是一款关联式数据序管理型系统的数据库,通常是被用来开发Web 应用程序这些应用程序都利用Asp技术在IIs上运行,但是由于Access 是小型的数据库,在很多的使用上都有着局限性,而且如果过多的数据库访问量还会造成...
  • 全面地保持完整性,并控制数据库访问权限等安全性要求 Oracle数据库主要特点: 支持多用户、大事务量事务处理 数据安全性和完整性控制 支持分布式数据处理 可移植性 数据库逻辑结构是从逻辑角度分析...
  • C#使用ADO.NET访问数据库

    千次阅读 2020-07-16 12:51:28
    常用的数据库访问技术2.认识ADO.NET技术1.ADO.NET的命名空间及导入2.ADO.NET的工作原理及访问架构1.各种数据库/数据源2..NET数据提供程序3.数据集DataSet3.客户端应用程序基于ADO.NET的两种数据访问模式1.通过...
  • 常用数据库分库分表技术介绍

    千次阅读 2019-07-07 10:24:33
    目录 物理分表 逻辑分表 分库 分库&...首先,一个最简单网站结构如下,一台服务器和一个数据库就能搭建一个完整网站,用户通过Internet访问对应域名,就能使用该网站提供服务。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,691
精华内容 676
关键字:

常用的数据库访问技术