实验指导
实验一 VS2005集成开发环境
一、 实验目的
熟悉VS2005开发环境,掌握如何在此环境下开发简单的.NET应用程序,以及调试程序的基本操作技巧
二、 实验要求
1、 熟悉VS.NET环境;
2、 按照C#规范正确写源程序
3、 能得到正确的程序运行结果
三、 实验原理
C#程序开步骤:
编辑源程序—>编译à运行
四、 主要仪器及耗材
计算机及VS.NET软件
五、 实验内容与步骤
1.使用VS.NET创建一控制台程序,输出自己的姓名;
2.使用VS.NET创建一WinForm程序,输出自己的姓名;
六、 实验注意事项
应分析源程序,并注意运行结果是否为预期结果。
七、 思考题
1. VS.NET环境有何优点?
2. C#的程序结构?
实验二 最简单的C#程序开发
一、 实验目的
1.练习C#变量声明和赋值方法、类型转换方法
2.初步学习调试方法
二、 实验要求
1. 熟悉VS.NET环境;
2. 按照C#规范正确写源程序
3. 能得到正确的程序运行结果
三、 实验原理
1.C#程序开发过程
C#的程序结构由注释、编译预处理和程序主体组成。
(1) 注释:注释是写程序者为读程序者作的说明与注解,仅供人阅读程序使用,C++编译器把所有注释都视为空白。
(2) 编译预处理:每个以符号“﹟”开头的行,称为编译预处理行。
(3) 程序主体:C#用函数组织过程,函数定义是C++程序的主体,不同的程序由不同的函数按层次结构组织而成。
程序主体基本形式
2.数据类型
①C#的数据类型
②常量与变量
实型常量:带有小数点的数,float、double等;
整型常量:不带小数点的数,int、long int等;
字符型常量:用一对单引号括起来的一个或多个字符,如’A’;
字符串常量:是括在一对双引号内的字符序列,如”Hello”;
枚举常量enum color{red,white,green}。
变量具有以下特点:
(1)变量是指程序中使用的一个被命名的存储区域(称程序实体),用以存放可由程序修改的值,其名称为变量名,其值称为变量值。
(2)每个变量应属于一个特定的类型。
符号常量:在声明语句中,用const修饰的标识符将指称一个“只读的”程序实体,称为符号常量,如语句:const float Pi=3.1415926。
四、 主要仪器及耗材
计算机及VS.NET软件
五、 实验内容与步骤
1.运行如下程序,并找出错误,注意变量的定义与使用方法。
namespace test2
{
class Program
{
static void Main(string[] args)
{
int m, n;
float f;
m = 12;
n=3
f=m+n;
Console.Writeline("m={0}\n",m);
Console.Writeline("f={0}\n", f);
}
}
}
2、在程序1的基础上定义一变量name,赋初置为你自己的姓名,然后输出name。
3、运行数据类型转换程序,对每个转换进行说明。
using System;
namespace test2
{
class Program
{
static void Main(string[] args)
{
short shortResult, shortVal = 4;
int integerVal = 67;
long longResult;
float floatVal = 10.5F;
double doubleResult, doubleVal = 99.999;
string stringResult, stringVal = "17";
bool boolVal = true;
Console.WriteLine("Variable Conversion Examples\n数据类型转换范例\n");
doubleResult = floatVal * shortVal;
Console.WriteLine("Implicit,->double:{0}*{1}->{2}", floatVal, shortVal, doubleResult);
shortResult = (short)floatVal;
Console.WriteLine("Implicit,->short:{0}->{1}", floatVal, shortResult);
stringResult = Convert.ToString(boolVal) + Convert.ToString(doubleVal);
Console.WriteLine("Explicit,->string:\"{0}\"+\"{1}\"->{2}", boolVal, doubleVal, stringResult);
longResult = integerVal + Convert.ToInt64(stringVal);
Console.WriteLine("Mixed,->long {0}+{1}->{2}", integerVal, stringVal, longResult);
}
}
六、 实验注意事项
1、 应分析源程序,并注意运行结果是否为预期结果。
2、 注意大小写及英文字符(ASCII码)
七、 思考题
1、 如何通过VS.NET的调试窗口分析程序的错误?
2、 C#的基本程序结构?
实验三 运算符与表达式
一、 实验目的
1. 通过简单程序掌握C#运算符与表达式;
2. 提高程序可读性
3. 学习过程化程序设计方法
4. 进一步学习掌握查找与修改编译错误的方法
二、 实验要求
认真完成实验内容并得到正确的程序运行结果。
三、 实验原理
C#语句可以分为以下5类:
1.表达式语句:由一个表达式构成一个语句,最典型的是,由赋值表达式构成一个赋值语句。例:a=5;
2.声明语句:一个名字在使用之前必须先声明,以便建立名字与程序实体之间的映射关系。按声明的程序实体结构对象声明语句可以分为:声明变量;声明函数;声明对象。按产生不产生程序实体,声明语句可分为定义性与引用性两种。
3.空语句:只有一个分号的语句称为空语句。主要用于语法上要求有一条语句但实际没有任何操作可执行的场合。
4.块语句:也称为复合语句或分程序,是括在一对花括号之间的语句序列。在语法上它相当于一条语句,只是在花括号外不再写分号。块语句主要在两种情形下使用:语法要求一条语句,但又难以只用一条简单语句表达的情形;形成局部化的封装体。
四、 主要仪器及耗材
计算机及VS.NET软件
五、 实验内容与步骤
1.输入并运行下列程序并分析其运行结果。
using System;
class Unary {
public static void Main() {
int unary = 0;
int preIncrement;
int preDecrement;
int postIncrement;
int postDecrement;
int positive;
int negative;
sbyte bitNot;
bool logNot;
preIncrement = ++unary;
Console.WriteLine("Pre-Increment: {0}", preIncrement);
preDecrement = --unary;
Console.WriteLine("Pre-Decrement: {0}", preDecrement);
postDecrement = unary--;
Console.WriteLine("Post-Decrement: {0}", postDecrement);
postIncrement = unary++;
Console.WriteLine("Post-Increment: {0}", postIncrement);
Console.WriteLine("Final Value of Unary: {0}", unary);
positive = -postIncrement;
Console.WriteLine("Positive: {0}", positive);
negative = +postIncrement;
Console.WriteLine("Negative: {0}", negative);
bitNot = 0;
bitNot = (sbyte)(~bitNot);
Console.WriteLine("Bitwise Not: {0}", bitNot);
logNot = false;
logNot = !logNot;
Console.WriteLine("Logical Not: {0}", logNot);
}
}
2、程序设计
编写一程序,输入a、b、c的值,如果a>0,输出b*b-4ac,否则输入字符串”a是负数”。
提示:输入语句为Console.readLine(),输入符串。
六、 实验注意事项
1. 应分析源程序,并注意运行结果是否为预期结果。
2. 注意大小写及英文字符(ASCII码)
七、 思考题
条件表达式怎么用?
实验四 数组
一、 实验目的
1. 掌握数组声明与创建;
2. 掌握数组的引用及初始化。
二、 实验要求
1.认真完成实验内容并得到正确的程序运行结果。
2.为你的程序加上注释,使得其清晰可读。
3.利用调试程序来修改你程序的逻辑错误
三、 实验原理
1.一维数组
数组定义:类型[] 数组名[
数组初始化:数组可以初始化,即在定义时使它包含程序马上能使用的值,初始化表达式按元素顺序依次写在一对花括号内。值的个数不能多于数组元素的个数。
数组引用:定义了数组,就可以对数组中的元素进行引用。引用方式为:
数组名 [下标]
2、二维数组
数组可以有多个下标,数组中每个元素需要两个下标来表示称为二维数组,第一个下标表示该元素所在行,第二个下标表示所在列。
二维数组也可在定义时初始化。例:int array[2][3]={{1,2,3},{4,5,6}};
四、 主要仪器及耗材
计算机及VS.NET软件
五、 实验内容与步骤
1. 使用数组编写程序,输入5个数生的姓名,然后输出。
2. 使用二维数组,定义一个3X3的矩阵,求出对角线之和,并输出。
六、 实验注意事项
1.应注意合理应用for及while循环。
七、 思考题
1. 实验内容2,定义二维矩阵有几种方法。
实验五 分支程序设计
一、 实验目的
1.学会使用逻辑表达式表示条件的方法。
2.掌握if语句三种形式的用法。
3.学会设计有实际价值的分支结构程序。
二、 实验要求
1.认真完成实验内容并得到正确的程序运行结果。
2.为你的程序加上注释,使得其清晰可读。
3.利用调试程序来修改你程序的逻辑错误
三、 实验原理
If语句的形式:
1)第一种形式为基本形式:if
if(表达式) 语句
其语义是:如果表达式的值为真,则执行其后的语句, 否则不执行该语句。其过程可表示为下图。
2)第二种形式为: if-else
if(表达式)
语句1;
else
语句2;
其语义是:如果表达式的值为真,则执行语句1,否则执行语句2 。
其执行过程可表示为下图。
输入两个整数,输出其中的大数。
改用if-else语句判别a,b的大小,若a大,则输出a,否则输出b。
3)第三种形式为if-else-if形式
前二种形式的if语句一般都用于两个分支的情况。 当有多个分支选择时,可采用if-else-if语句,其一般形式为:
if(表达式1)
语句1;
else if(表达式2)
语句2;
else if(表达式3)
语句3;
…
else if(表达式m)
语句m;
else
语句n;
四、 主要仪器及耗材
计算机及VS.NET软件
五、 实验内容与步骤
1、简单if语句的用法。编写调试程序:从键盘输入一个任意大小的实数x,如果x满足如下条件,则输出x及其绝对值。输出x的条件:-29.5≤x≤29.5
2、if-else语句的用法。修改上面的程序,使得x满足-29.5≤x≤29.5时输出x及其绝对值,否则只输出x。
六、 实验注意事项
1.应分析源程序,并注意运行结果是否为预期结果。
七、 思考题
If语句括号如何匹配
实验六 循环结构程序
一、 实验目的
1.通过本实验,加深对循环控制结构有关概念的理解。
2.熟练掌握while、do-while和for三种循环控制语句的特点,掌握循环结构程序设计和调试方法。
3.掌握二重循环结构程序的设计方法。
二、 实验要求
1.认真完成实验内容并得到正确的程序运行结果。
2.为你的程序加上注释,使得其清晰可读。
3.利用调试程序来修改你程序的逻辑错误
三、 实验原理
流程控制语句
① 条件语句:if () ~ else ~
② 循环语句:for () ~
③ 循环语句:while () ~
④ 循环语句:do ~ while ()
⑤ 结束本次循环语句:continue
⑥ 终止执行switch或循环语句:break
⑦ 多分支选择语句:switch(){case1;case2… ;default;}
⑧ 从函数返回语句:return
四、 主要仪器及耗材
计算机及VS.NET软件
五、 实验内容与步骤
1、 采用循环语句计算1!+2!+3!+4!+…+20!
2、 输入一个3X4数组,计算机所有元素之各并输出。
六、 实验注意事项
1、注意大小写及英文字符(ASCII码)
2、避免出现死循环
七、 思考题
1、For循环与While循环在什么情况下使用
实验七 类
一、 实验目的
1.掌握C#类的概念和基本组成,学会设计类,掌握类的使用方法;
2.熟悉字段与方法的使用;
二、 实验要求
1.认真完成实验内容并得到正确的程序运行结果。
2.为你的程序加上注释,使得其清晰可读。
3.利用调试程序来修改你程序的逻辑错误
三、 实验原理
1.类定义:客观世界中的事物往往需要从属性与行为两个方面进行描述,在C#中,分别用数据成员与函数成员来表现,并且将它们封装在一起,形成一种抽象数据类型——类。
类具有数据成员和成员函数两种成员,类成员分为公开的(public)和私有的(private)两类。外界不能访问一个对象的私有部分,它们与对象间的信息传送只能通过公开成员函数等特定方法进行。
类接口定义的基本格式为
四、 主要仪器及耗材
计算机及VS.NET软件
五、 实验内容与步骤
设计一个Student类,包括学号、姓名、性别、出生日期、班级字段,要求:
①学号、姓名、班级为public,出生日期为private
②在main函数中输入字段学号、姓名、班级值;
③尝试在main函数中输入出生日期字段,如果无法输入则在不改出生日期private访问限制的情况下想办法解决
④输出Student的所有信息。
六、 实验注意事项
1. 注意访问修饰符的合理使用
七、 思考题
1、 类的公有与私有属性有何区别,如何运用?
实验八 类的封装性
一、 实验目的
1.掌握四种访问修饰符;
2.熟悉属性的定义与使用;
二、 实验要求
1.认真完成实验内容并得到正确的程序运行结果。
2.为你的程序加上注释,使得其清晰可读。
3.利用调试程序来修改你程序的逻辑错误
三、 实验原理
属性的定义格式为:
public <返回类型(与要修改和访问的字段同类型)> <属性名(不要与字段同名)>
{
get
{
return <需要访问修改的字段>;
}
set
{
<需要访问修改的字段>=value;
}
}
四、 主要仪器及耗材
计算机及VS.NET软件
五、 实验内容与步骤
设计一个商品类,类名为Commodity,要求:
①包括编号、名称、产地、单价、折扣、销售数量、总价属性
②在main函数中输入商品的各项属性;
③在main函数中输入商品销售数量,根据数量取得折扣,并计算出总价。如果销售数量小于5没有折扣,5~10折扣为0.9,大于等于10折扣为0.8。
④输出商品编号、名称、单价、销售数量、折扣、总价信息。
六、 实验注意事项
1. 注意访问修饰符的合理使用
七、 思考题
1. 类的公有与私有属性有何区别,如何运用?
实验九 类的继承性
一、 实验目的
1.掌握类的继承特性;
2.学会使用C#实现类的继承性;
二、 实验要求
1.认真完成实验内容并得到正确的程序运行结果。
2.为你的程序加上注释,使得其清晰可读。
3.利用调试程序来修改你程序的逻辑错误
三、 实验原理
继承是OOP最重要的特征之一
任何类都可以从另一个类中继承,这就是说,这个类拥有它被继承的类的所有成员。在OOP中,被继承(也称为派生)的类称为父类(也称为基类)。
继承可以从一个较一般的基类扩展或创建更多的特定类 。
继承是软件重用的一种形式
[访问修饰符] class <类名>:父类名
四、 主要仪器及耗材
计算机及VS.NET软件
五、 实验内容与步骤
设计一个学生类,包括学号,姓名,性别属性,设计一大学生类继承于学生类,其属性除具备学生类的属性外,还有专业、高考成绩,设计一中学生类继承于学生类,其属性除具备学生类的属性外,还有年级、班级属生。对类进行测试(生成对象、输出对象属性)
六、 实验注意事项
1. 注意访问修饰符的合理使用
七、 思考题
子类能继承父类的哪些方法(public、private、protected)?
实验十 类的多态性
一、 实验目的
1.理解类的多态特性;
2.学会使用C#的方法重写;
二、 实验要求
1.认真完成实验内容并得到正确的程序运行结果。
2.为你的程序加上注释,使得其清晰可读。
3.利用调试程序来修改你程序的逻辑错误
三、 实验原理
1.类的方法重写
在基类中的方法必须有修饰符virtual,而在子类的方法中必须指明override。
格式:
基类中:
public virtual void myMethod()
{
}
子类中:
public override void myMethod()
{
}
四、 主要仪器及耗材
计算机及VS.NET软件
五、 实验内容与步骤
1.设计一个学生类,包括学号,姓名,性别属性,用方法Study输出“我会学习”,设计一大学生类继承于学生类,用方法Study输出“我学习大学课程”,设计一中学生类继承于学生类,用方法Study输出“我学习中学课程”。对类进行测试
2.在第1题的大学生类中,增加两同名方法,用于根据课程号显示该课程的名称及成级,如果只输入课程号则显示该课程所有学期的成绩,如果输入课程号及学期,则显示该课程指定学期的成绩。
六、 实验注意事项
1. 注意访问修饰符的合理使用
七、 思考题
大学生对象如何使用其父类的Study方法?
实验十一 Windows应用程序
一、 实验目的
1.掌握windows应用程序的结构;
2.掌握WinForm的设计;
3. 掌握菜单的设计;
二、 实验要求
1.认真完成实验内容并得到正确的程序运行结果。
2.为你的程序加上注释,使得其清晰可读。
3.利用调试程序来修改你程序的逻辑错误
三、 实验原理
1.Windows窗体的组成要素
ü 窗体(winform)
ü 菜单栏
ü 工具栏
ü 状态栏
2.Windows应用程序的类型
l 单文档应用程序
l 多文档应用程序
四、 主要仪器及耗材
计算机及VS.NET软件
五、 实验内容与步骤
设计一个学生管理信息系统主窗体及学生信息子窗体,要求如下:
1、 主窗体为MDI容器,并包含菜单,菜单内容为信息管理(基本信息、成绩信息、学籍信息)、信息查询(基本信息、成绩信息、学籍信息)、统计报表(学生名册、成绩总表)
2、 子窗体用于显示学生基本信息,包括学号、姓名、性别、年龄、籍贯。该窗体通过“信息管理--基本信息”菜单项打开。
六、 实验注意事项
1. 注意打开子窗体的代码中必须指定MDI容器作为父窗体。
七、 思考题
MDI应用程序的特点?
实验十二 Windows基本控件(一)
一、 实验目的
1.掌握windows控件的使用方法;
2.掌握windows基本控件的常用属性、方法及事件;
二、 实验要求
1.认真完成实验内容并得到正确的程序运行结果。
2.为你的程序加上注释,使得其清晰可读。
3.利用调试程序来修改你程序的逻辑错误
三、 实验原理
1.本次实验中用到的Windows基本控件
q Label控件
q Button控件
q TextBox控件
q RadioButton控件
q CheckBox控件
2.Windows基本控件的常用属性、方法及事件
四、 主要仪器及耗材
计算机及VS.NET软件
五、 实验内容与步骤
设计一个学生信息窗体,要求如下:
1. 学生信息如下:学号、姓名、性别、年龄、籍贯、党员
2. 性别显示男、女两项,用户只能选择其中一项;是否党员采用复选框。其余信息采用文本框输入。
3. 输入完性别后,在窗体下端显示该学生的“学号姓名性别年龄”;选中“党员”,显示“入党时间20##年”。
4. 在窗口下端设置一按钮,名称为“输入简历”,单击后打开简历输入窗体。
六、 实验注意事项
1. 注意打开子窗体的代码中必须指定MDI容器作为父窗体。
七、 思考题
MDI应用程序的特点?
实验十三 Windows基本控件(二)
1. 实验目的
1.掌握windows控件的使用方法;
2.掌握windows基本控件的常用属性、方法及事件;
2. 实验要求
1.认真完成实验内容并得到正确的程序运行结果。
2.为你的程序加上注释,使得其清晰可读。
3.利用调试程序来修改你程序的逻辑错误
3. 实验原理
1.本次实验中用到的Windows基本控件
q ListBox控件
q ComboBox控件
q GroupBox控件
q TabControl控件
q DataTimePicker控件
2.Windows基本控件的常用属性、方法及事件
4. 主要仪器及耗材
计算机及VS.NET软件
5. 实验内容与步骤
设计一个学生信息窗体,要求如下:
1. 学生信息如下:学号、姓名、性别、年龄、籍贯、党员、照片、简历
2. 学号、姓名、性别、年龄、籍贯、党员、照片在基本信息选项卡上,并在GroupBox中;简历在简历选项卡里
3. 籍贯采用ComboBox,并添加选项数据。
4. 简历采用ListBox,用户通过文本框输入简历后,点“添加简历”按钮将简历数据加到ListBox类。
5. 实验注意事项
无6. 思考题
1.在程序中如何获取选中的ComboBox选项?
实验十四 程序调试与异常处理
一、 实验目的
1、 掌握.NET程序调试的方法。
2、 掌握异常处理的实现机制。
3、 熟练掌握C#关键字try、catch、throw和finally的使用。
二、 实验要求
1.认真完成实验内容并得到正确的程序运行结果。
2.为你的程序加上注释,使得其清晰可读。
3.利用调试程序来修改你程序的逻辑错误
三、 实验原理
1.常见程序错误
q 错误的语法、输入错误、拼写错误
q 无限循环
q 执行不到的代码
q 使用没有进行赋值的对象
2、进行调试状态
q 观察程序运行时行为
q 跟踪变量的值
q 确定语义错误的位置
q 查看寄存器的内容
q 查看寄存器的内容
q 查看内存空间
3.异常处理
try
{
//程序代码
}
catch
{
//错误处理代码
}
finally
{
//finally 代码
}
四、 主要仪器及耗材
计算机及VS.NET软件
五、 实验内容与步骤
1. 10个整数存于数组中,在输入非数字字符时,定义一个异常来捕捉,并进行提示。
2. 以下程序找出5个数中的最大与最小数,并求出每个数平方的阶乘s,运行程序,输入5个数,设置断点记录下每次i循环s的值,观察s是否正确,不正确则找出问题并排队错误。
using System;
namespace ConsoleApplication3
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
int[] num = new int[5];
int max;
int min;
for(int i = 0; i < 5; i++)
{
Console.WriteLine("请输入第{0}个数 :",i +1);
num[i] = int.Parse(Console.ReadLine());
}
max = num[0];
min = num[0];
int s=1;
for (int i = 1; i < 5; i++)
{
if (max < num[i]) max = num[i];
if (min > num[i]) min = num[i];
for(int j=1;j<i*i;j++)
s=s*j;
}
Console.WriteLine("最大数是:{0}",max);
Console.WriteLine("最小数是:{0}",min);
Console.WriteLine("按回车键退出...");
Console.ReadLine();
}
}
}
六、 实验注意事项
无
七、 思考题
1.在程序中如何缩小程序的错误范围尽快找到错误?
实验十五 数据库编程(一)
一、 实验目的
1.掌握SQL Server的基本使用方法;
2.掌握SQL Server下表的创建;
3.掌握基本SQL语句用法
二、 实验要求
1.认真完成实验内容并得到正确的程序运行结果。
2.为你的程序加上注释,使得其清晰可读。
3.利用调试程序来修改你程序的逻辑错误
三、 实验原理
1)Select语句
功能:从数据库中检索行,并允许从一个或多个表中选择一个或多个行或列
语法:
SELECT select_list [ INTO new_table ]
[ FROM table_source ] [ WHERE search_condition ]
[ GROUP BY group_by_expression]
[ HAVING search_condition]
[ ORDER BY order_expression [ ASC | DESC ] ]
最基本的select语句:
select <字段清单> from <表清单> where <表达式>
字段清单:查询结果中要显示的字段,字段间用逗号分开。*表示所有字段。
表清单:要查询的表清单,表间用逗号分开
表达式:where中的查询条件,逻辑表达式
2)update语句
语法格式:
update 表名 set 字段名=值,字段名=值,… where 条件
例:将employee表中所有员工的salary变为500
将employee表中1980后出生的的salary变加500
3)delete语句
语法格式:
delete 表名 <where 条件>
例:将employee表中salary为500的记录删除
4)insert语句
Insert into 表名 (字段表) value (值表)
四、 主要仪器及耗材
计算机及SQL Server2000软件
五、 实验内容与步骤
1.在SQL Server2000下创建一个数据库school,在school库下建一学生表student,输入10条数据,表结构如下,要求自己设计字段类型及宽度,并在实验报告中将下表填完整:
2.使用SQL语句完成以下数据操纵,在实验报告中记录下你的SQL语句
1)查询所有1980年后出生的男同学
2)查询所有姓张的同学,并只显示xh,xm两列
3) 将你自己的信息用insert语句插入
4)将所有男同学的学号末尾加字符N
5)删除所有的女同学
六、 实验注意事项
根据数据项的实际功能正确定义数据类型及宽度
七、 思考题
什么是主键,有何特征,如何确定主键字段或字段组合?
实验十六 数据库编程(二)
一、 实验目的
1.掌握ADO.NET使用方法;
2.掌握Connection对象的使用方法;
3.掌握Command对象的使用用法
二、 实验要求
1.认真完成实验内容并得到正确的程序运行结果。
2.为你的程序加上注释,使得其清晰可读。
3.利用调试程序来修改你程序的逻辑错误
三、 实验原理
1.创建数据服务器连接;
2. 设计主窗体,窗体名称“学生信息”,
3.创建Connection对象
第一种方式:编写代码
SqlConnection objSqlConnection =
new SqlConnection ("server = SQLDB;
uid = sa; pwd = password; database = pubs");
objSqlConnection.Open();
第二种方式:VS.Net环境可视化操作
objSqlConnectionà创建的连接对象名称
SQLDB:存储“pubs”数据库的服务器名称
本地服务器可以有以下几种写法:
1、(local)
2、127.0.0.1
3、本地机子名称
4. 创建Command对象
第一种方式:编写代码
string strSQL=”select * from student”
SqlCommand objSqlCommand = new SqlCommand(strSQL);
objSqlConnection.Open();
第二种方式:VS.Net环境可视化操作
objSqlConnection à创建的 Command 对象名称
strSQ:select * from student
四、 主要仪器及耗材
计算机及VS2005及SQL Server2000软件
五、 实验内容与步骤
设计一个学生管理信息系统主窗体,要求如下:
1.主窗体为MDI容器,并包含菜单,菜单内容为信息管理(基本信息、成绩信息、学籍信息)、信息查询(基本信息、成绩信息、学籍信息)、统计报表(学生名册、成绩总表)
2.子窗体用于显示学生基本信息,包括一个ListBox对象用于显示数据库中student表的数据。
3.创建connection对象连接至student数据库。
4.创建Command对象用于检索student表的所有数据。
5.编程实现数据通过ListBox显示。
六、 实验注意事项
根据数据项的实际功能正确定义数据类型及宽度
七、 思考题
DataSet如何子数据库获取到数据?
参考代码:
//请根据Sql Server的配置,指定连接串中的用户名和密码。
string cnStr = "Persist Security Info=True;User ID=sa;Password=qq;Initial Catalog=Northwind;Data Source=CHQHAO";
SqlConnection cn = new SqlConnection(cnStr);
cn.Open();
sqlStr = "SELECT * FROM Categories";
SqlCommand cmd = new SqlCommand(sqlStr, cn);
SqlDataReader dr = cmd.ExecuteReader();
while(dr.Read())
{
id = dr["CategoryId"].ToString();
string name = dr["CategoryName"].ToString();
Console.WriteLine("编号:{0} 姓名:{1}", id, name);
}
dr.Close();
cn.Close();
Console.ReadLine();
// 插入命令
insCmd = "insert into FlightDetails values
('"+this.txtFlightCode.Text+"', '"+this.txtAirline.Text+"','“
+this.txtDestination.Text+"', '“+this.txtSource.Text+"','“
+this.txtArrival.Text+"', '"+this.txtDeparture.Text+"', “
+this.cboSeats.SelectedItem.ToString()+")";
//删除
delCmd = "delete from FlightDetails where FlightCode like '“ +this.txtFlightCode.Text+"'";
MessageBox.Show(delCmd);
// 初始化 command 对象
objSqlCommand = new SqlCommand(delCmd, objSqlConnection);
try
{
// 初始化 DialogResult
DialogResult objDialogResult =
MessageBox.Show(“您确定要删除当前记录吗?",
“确认", MessageBoxButtons.YesNo);
// 确定用户的响应
if (objDialogResult.Equals(DialogResult.Yes))
{
objSqlConnection.Open();
objSqlCommand.ExecuteNonQuery();
MessageBox.Show(“已删除记录");
btnModify.Enabled = false;
}
实验十七 数据库编程(三)
一、 实验目的
1.掌握数据集的使用方法;
2.掌握数据绑定方法;
3.DataGridView的使用
二、 实验要求
1.认真完成实验内容并得到正确的程序运行结果。
2.为你的程序加上注释,使得其清晰可读。
3.利用调试程序来修改你程序的逻辑错误
三、 实验原理
数据绑定一般步骤:
(一).无论是简单型的数据绑定,还是复杂型的数据绑定,要实现绑定的第一步就是就是要连接数据库,得到可以操作的DataSet。下面二段代码是分别连接Access 2000和Sql Server 2000数据库,并获得DataSet。
(1). 连接数据库,得到DataSet:
//创建一个 OleDbConnection
string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = db.mdb" ;
OleDbConnection myConn = new OleDbConnection ( strCon ) ;
string strCom = " SELECT * FROM person " ;
file://创建一个 DataSet
myDataSet = new DataSet ( ) ;
myConn.Open ( ) ;
file://用 OleDbDataAdapter 得到一个数据集
OleDbDataAdapter myCommand = new OleDbDataAdapter ( strCom , myConn ) ;
file://把Dataset绑定person数据表
myCommand.Fill ( myDataSet , "person" ) ;
file://关闭此OleDbConnection
myConn.Close ( ) ;
(2). 连接Sql Server 2000,得到DataSet:
// 设定数据连接字符串,此字符串的意思是打开Sql server数据库,服务器名称为server1,数据库为data1
string strCon = "Provider = SQLOLEDB.1 ; Persist Security Info = False ; User ID = sa ; Initial Catalog = data1 ; Data Source = server1 " ;
OleDbConnection myConn = new OleDbConnection ( strCon ) ;
myConn.Open ( ) ;
string strCom = " SELECT * FROM person " ;
file://创建一个 DataSet
myDataSet = new DataSet ( ) ;
file://用 OleDbDataAdapter 得到一个数据集
OleDbDataAdapter myCommand = new OleDbDataAdapter ( strCom , myConn ) ;
file://把Dataset绑定person数据表
myCommand.Fill ( myDataSet , " person " ) ;
file://关闭此OleDbConnection
myConn.Close ( ) ;
(二).根据不同组件,采用不同的数据绑定:
对于简单型的数据绑定,数据绑定的方法其实比较简单,在得到数据集以后,一般是通过把数据集中的某个字段绑定到组件的显示属性上面,譬如TextBox组件和Label组件,是绑定到"Text"属性。对于复杂型的数据绑定一般是通过设定其某些属性值来实现绑定的。
四、 主要仪器及耗材
计算机及VS2005及SQL Server2000软件
五、 实验内容与步骤
采用DataSet方式进行数据操纵,从SQLServer读取Product表的数据,设计一个产品数据列表主窗体;放置一个ListBox控件,以列表的方式ProductName;用文本框进行产品数据绑定,显示每个产品的详细信息。
六、 实验注意事项
根据数据项的实际功能正确定义数据类型及宽度
七、 思考题
Ado.net进行数据库编程的步骤是什么?
实验十八 数据库编程(四)
一、 实验目的
1.掌握ADO.NET数据库编辑的方法;
2.掌握ADO.NET下对数据的增删改查;
二、 实验要求
1.认真完成实验内容并得到正确的程序运行结果。
2.为你的程序加上注释,使得其清晰可读。
3.利用调试程序来修改你程序的逻辑错误
三、 实验原理
略
四、 主要仪器及耗材
计算机及VS2005及SQL Server2000软件
五、 实验内容与步骤
开发一简单的通讯录程序,要求如下:
1.自己设计通讯录数据表结构,包括ID、姓名、性别、手机、电话、单位、住址几项,数据库采用SQL Server2000。
2.主窗体名为“通讯录信息管理“,通过文本框输入数据,通过DataGridView显示所有通讯录数据。
3.能够进行通讯录的数据增加、删除、修改
4.实现查询功能,可通过姓名、单位等字段查询通讯录,并在DataGridView中显示查询结果。
六、 实验注意事项
注意类的设计、类的方法封装
七、 思考题
如何实现三层体系架构,表示层、逻辑层、数据访问层在此程序中应如何设计?