实验六 访问数据库

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六访问数据库

一、实验目的

1、熟悉通过嵌入式SQL(主语言为C++语言)编程访问数据库,及掌握游

标的使用方法

2、熟悉通过ODBC接口访问异构数据库并对异构数据库进行操作

3、学会配置ODBC数据源

4、学会各种数据库的访问方法

二、实验要求

1、编写一个嵌入式C++程序,实现对SQL Server2005数据库中的“学生课

程数据库”的Student表中的年龄进行更新,即系统每输出一个学生记录,询问用户是否更新。如果要更新,就输入新的年龄。要求:提交源程序并标识必要的注释。

答:create table provider

(

Sno char(5)primary key,

Sname char(20)not null,

Ssex char(4),

Sage int

);

insert into provider values('S1','李刚',’男’,20);

insert into provider values('S2','李红',’男’,21);

insert into provider values('S3','李飞',’男’,25);

insert into provider values('S4','李春',’男’,21);

#include

#include

#include

#include

#include

#include

#include

#include

EXEC SQL BEGIN DECLARE SECTION;

char deptname[20];

char HSno[9];

char HSname[20];

char HSsex[2];

int HSage;

int NEWAGE;

EXEC SQL END DECLARE SECTION;

long SQLCODE;

EXEC SQL INCLUDE sqlca;

int main(){

void ErrorHandler(void);

int count=0;

char yn;

printf("Please choose the department name(CS/MA/IS):");

scanf("%s",&deptname);

EXEC SQL CONNECT TO学生课程数据库@localhost:54321USER "SYSTEM"/"MANAGER";

EXEC SQL DECLARE SX CURSOR FOR SELECT Sno,Sname,Ssex,Sage FROM Student WHERE SDept=:deptname;

EXEC SQL OPEN SX;

for(;;){

EXEC SQL FETCH SX INTO:HSno,:HSname,:HSsex,:HSage;

if(sqlca.sqlcode!=0)

break;

if(count++==0)

printf("\n%-10s%-20s%-10s%-10s\n","Sno","Sname","Ssex", "Sage");

printf("%-10s%-20s%-10s%-10d\n",HSno,HSname,HSsex,HSage);

printf("UPDATE AGE(y/n)?");

do{

scanf("%c",&yn);

}while(yn!='N'&&yn!='n'&&yn!='Y'&&yn!='y');

if(yn=='y'||yn=='Y'){

printf("INPUT NEW AGE:");

scanf("%d",&NEWAGE);

EXEC SQL UPDATE Student SET Sage=:

NEWAGE WHERE CURRENT OF SX;

}

}

EXEC SQL CLOSE SX;

EXEC SQL COMMIT WORK;

EXEC SQL DISCONNECT学生课程数据库;

return1;

}

2、查有关C++、Java、C#中有关资料,分别写出C++、Java、C#访问SQL Server

2005数据库数据的方法及步骤。(只写你学的那门语言即可)

答:C#访问SQL Server2005数据库数据的方法及步骤如下所示:

一.数据库连接字符串

典型的数据库连接字符串包括:集成验证和混合验证两种模式

集成验证连接字符:

Data Source=locolhost;Initial Catalog=数据库名称;Integrated Security=True

混合验证模式字符:

Server=localhost;Initial Catalog=数据库名称;Persist Security Info=False;User ID=****; Password=****;

注:

1.这里的Data Source或Server表示数据源所在的计算机名称或IP地址,可以互换。

2.Initial Catalog表示连接的数据库名称,可写为database

3.Integrated Security表示是否要为集成身份验证

4.如果使用的是混合验证,需要提供用户名User ID和密码Password字段。二.类和对象

如下图为中的基本类,注意不是一个继承表,而是关系表

Data提供者对象客户对象

DataSet

DataTable

DataRow

DataColumn DataRelation Connection Command Command Builder DataReader DataAdapter

·提供者对象:专用于每一种类型的数据源;专用于提供者的对象完成数据源中实际的读取和写入工作。

·用户对象:将数据读入到内存中后用来访问和操作的数据的对象。

提供者对象需要一个活动的连接,可以使用它们预先读取数据,然后根据需要通过用户对象使用内存中的数据,也可以使用提供者对象更新数据源中的数据,并将改动写回到数据源中。

用户对象以非连接方式使用,甚至在数据库连接关闭之后,也可使用内存中的数据。

1.提供者对象

相关文档
最新文档