实现DataReader对象的功能以外,还可以执行对数据库的插入、更新和删除等操作,其功能要比DataReader对象的功能强得多(要与DataSet对象结合使用)。 但强功能的实现就意味着要付出更多的机器资源,使用起来就显得特别“man”。 因此,如果DataReader对象已经能完成的任务就不必使用DataAdapter对象。
编程题 与程序阅读
1 编一个程序,设园半径r=1.5,园柱高h=3.6,圆周率3.1415定义为常量,求出圆周长、圆面积、圆柱体积。然后用Console.WriteLine方法输出计算结果,输出时要求有文字说明,取小数点后2位数字。例如,圆周长=×××.××。(k10052707) const double Pi = 3.1415; double r = 3, h = 5; double c, s, v; c = 2 * Pi * r; s = Pi * r * r;
v = Pi * r * r * h;
Console.WriteLine(\圆的周长为{0:f2}\Console.WriteLine(\圆的面积为{0:f2}\Console.WriteLine(\圆的体积为{0:f2}\
2 编一个程序,输入三个实数,要求使用if else语句把它们的中间数找出来,可以使用逻辑运算符。(k10032309) float x, y, z, second = 0;
Console.WriteLine(\请输入三个float类型的值\x = float.Parse(Console.ReadLine()); y = float.Parse(Console.ReadLine()); z = float.Parse(Console.ReadLine()); if ((x>y&&x
else if ((y>x&&y
second = z;
Console.WriteLine(\这三个数中的中间数为{0}\
3 编一个程序,打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如, 153=1*1*1+5*5*5+3*3*3,所以153是“水仙花数”。(k10033106) int a, i, j, k;
for (a = 100; a <= 999; a++) {
i = a % 10; k = a / 100;
j = a % 100 / 10;
if (a == Math.Pow(i, 3) + Math.Pow(j, 3) + Math.Pow(k, 3)) Console.WriteLine(\是水仙花数\
4 编一个程序,要求使用while语句,输入用户名和密码,实现用户登录程序的功能,至多允许输入三次,超过三次不允许登录。(k10022507) const string UserName = \const string PassWord = \string username, password; int i=1; {
while(i<=3)
Console.WriteLine(\请输入用户名%username = Console.ReadLine(); Console.WriteLine(\请输入密码\password = Console.ReadLine();
if (username == UserName && password == PassWord) break; else
Console.WriteLine(\你输入的用户名或者密码错误,请重新输入用户名和密码\i++; }
if (i <= 3) {
Console.WriteLine(\正在登录系统\} else
Console.WriteLine(\不能登录系统\
5 编一个程序,定义一个字符串变量,输入字符串,判断有没有连续重复字符出现,统计重复字符出现次数。例如,aaabccdfff,其中a重复出现二次,c重复出现一次,f重复出现二次,共计字符重复五次。(k10053005) string i; int a = 0;
Console.WriteLine(\输入一个字符串\i = Console.ReadLine();
for (int b = 1; b <= i.Length - 1; b++) {
if (i[b] == i[b - 1]) a++; }
Console.WriteLine(\
6 定义一个一维数组,输入任意6个整数,假定为7,4,8,9,1,5。编一个程序,利用for语句,输出如下方阵的内容:
7 4 8 9 1 5 5 7 4 8 9 1 1 5 7 4 8 9 9 1 5 7 4 8 8 9 1 5 7 4 4 8 9 1 5 7 ( k10050903)
int[] a ={ 7, 4, 8, 9, 1, 5 }; int temp;
for (int i = 0; i < 6; i++) {
Console.Write(\}
for(int i=0;i<5;i++) {
Console.WriteLine(); temp = a[5];
for (int j = 5; j >0; j--) {
a[j] = a[j - 1]; }
a[0] = temp;
for (int k = 0; k < 6; k++) Console.Write(\}
7 * 编一个程序,定义一个类,该类中定义二个非静态方法,一个方法用来求出这个三角形的周长,另一个方法用来求出这个三角形的面积。已知三角形三条边a,b,c,计算其面积可以用Math类中的Sqrt()方法,有表达式
Math.Sqrt(s*(s-a)*(s-b)*(s-c)),可以利用它计算指定数的开方,其中s=(a+b+c)/2。在主方法中输入一个三角形三条边a,b,c,要求调用这二个非静态方法计算三角形的周长和面积。注意:在输入三角形三条边时,必须检查它们的数据合法性。(k10060103)
using System;
using System.Collections.Generic; using System.Linq; using System.Text;
namespace Test1 {
class Program {
static void Main(string[] args) {
double x, y, z;
Console.WriteLine(\请?输?入?三▂角?形?的?三▂边?\); x = double.Parse(Console.ReadLine()); y = double.Parse(Console.ReadLine()); z = double.Parse(Console.ReadLine()); triangle tr = new triangle(x,y,z);
if ((x + y > z && x - y < z) && (x + z > y && x - z < y) && ((y + z) > x && (y - z < x))) {
Console.WriteLine(\三▂角?形?的?周ü长¤为a{0}\, tr.c(x,y,z)); Console.WriteLine(\三▂角?形?的?面?积y为a{0}\, tr.s(x,y,z)); } else
Console.WriteLine(\三▂角?形?三▂边?不?合?法ぁ?);
} }
class triangle {
double a, b, c;
public triangle(double x, double y, double z) {
a = x; b = y; c = z; }
public double C(x,y,z) {
double zc; zc = a + b + c; return zc; }
public double s(x,y,z) {
double mj,s1;
s1 = (a + b + c) / 2;
mj = Math.Sqrt(s1*(s1-a)*(s1-b)*(s1-c)); return mj; } } }
8 编程题 *
【例10.1】 DataSet对象的使用方法。
本例将综合上面介绍有关DataSet对象的使用方法。
该程序要展示的功能是:将两个数据源(对应数据库MyDatabase中的表student和表teacher)的数据分别填充到DataSet对象中,形成该对象中的两个表t1和表t2;
然后提取t1的所有字段名以及t1中所有的数据项,并显示在listBox1控件中;
最后将t2绑定到dataGridView1控件并显示t1中的数据,同时将表t2中的字段姓名绑定到textBox1并显示该字段的数据项。 创建步骤如下:
(1)创建窗体应用程序DataSetApp,在窗体上添加Button、TextBox、DataGridView和ListBox,并适当设置它们的属性、位置和大小:
建步骤如下:
(2)编写代码(以下是核心代码):
private void button1_Click(object sender, EventArgs e) {
SqlConnection conn = null;
SqlDataAdapter DataAdapter = null; DataSet dataset = null; try {
string ConnectionString = \
\ \ conn = new SqlConnection(ConnectionString);