ADO.NET 试卷
《ADO.NET 程序设计》期终试卷
班级: 姓名: 学号: 成绩:
一、创建数据库 数据库名称是jsjyy09355
创建表,表名是你的stu_学号例如:stu_2009010219
表结构:
|
ID int 自增1 ,主键 szjm _name 用户名 可变字符串 长度:50 szjm _ykt 一卡通号码 可变字符串 长度:30 szjm _PassWord 密码 可变字符串 长度:30 szjm _Class 班级可变字符串 长度:50 |
(1) 请写出建表的T-SQL语句,
|
CREATE TABLE [stu_0907013401] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [Szjm _name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [Szjm _PassWord] [nvarchar] (30) COLLATE Chinese_PRC_CI_AS NULL , [Szjm _Class] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [szjm _ykt] [nvarchar] (30) COLLATE Chinese_PRC_CI_AS NULL , CONSTRAINT [PK_0907013401] PRIMARY KEY CLUSTERED ( [ID] ) ON [PRIMARY] ) ON [PRIMARY] GO |
(2) 创建根据一卡通号码和密码查询用户ID,采用存储过程实现,存储过程名称是SP_你的学号(例如SP+2009010219),请写出存储过程SQL。
|
CREATE procedure users_delu @useradmin nvarchar(20), @userpassword nvarchar(40) as select ID from [stu_0907013401] where [Szjm _name =@useradmin and [User_PassWord]=@userpassword |
(3) 增加你的一卡通号码到你创建的表里面,密码统一设置为’
|
insert into stu_0907013401(Szjm _name,User_PassWord,User_Class) values ('0907013401','1234567890','计应34') |
(4) 修改你的一卡通号到你创建的表里面,密码统一修改为’
|
update stu_0907013401 set User_PassWord='054321' where Szjm _name='0907013401' |
(5) 增加你的一卡通号到你创建的表里面,删除你插入的记录,请写出T-SQL语句,根据一卡通号码删除。
|
delete from stu_0907013401 where Szjm _name='0907013401' |
二、创建登陆界面,实现用户名和密码的验证。
请写出登录部分代码,调用前面创建的存储过程。
(用户名TextBox控件 ID :txt_username,密码TextBox控件 ID: txt_password,确定按钮ID button1,退出按钮ID是button2)
请写出登录部分代码:
|
private void button1_Click(object sender, EventArgs e) { try { string connection = "database=jsjyy09354;server=.;uid=sa;pwd=sa;"; SqlConnection con = new SqlConnection(connection); con.Open(); SqlParameter[] para = new SqlParameter[2]; para[0] = new SqlParameter("@useradmin", SqlDbType.NVarChar, 20); para[0].Value = txt_username.Text.Trim(); para[1] = new SqlParameter("@userpassword", SqlDbType.NVarChar, 40); para[1].Value = txt_password.Text.Trim(); SqlCommand comm = new SqlCommand(); comm.Connection = con; comm.CommandType = CommandType.StoredProcedure; comm.CommandText = "SP_学号 "; comm.Parameters.Add(para[0]); comm.Parameters.Add(para[1]); SqlDataAdapter sda = new SqlDataAdapter(comm); DataSet ds = new DataSet(); sda.Fill(ds); con.Close(); if (ds.Tables[0].Rows.Count > 0) { MessageBox.Show("成功!"); } else { MessageBox.Show("失败!"); } } catch (Exception ee) { MessageBox.Show(ee.Message); } } |
请写出退出部分(退出应用程序)代码:
|
private void button2_Click(object sender, EventArgs e) { Application.Exit(); } |
三、通过代码实现新增记录到数据表。
(一卡通TextBox控件 ID :txt_ykt,姓名 TextBox控件 ID: txt_username,班级姓名 TextBox控件 ID: txt_class;保存按钮ID button1,返回按钮ID是button2)
请写出【保存按钮ID button1】实现新增学生信息到数据表
|
private void button1_Click(object sender, EventArgs e) { string ykt = txt_ykt.Text.Trim(); string pwd = txt_username.Text.Trim(); string szjm _Class = txt_class.Text.Trim(); string connection = "database=jsjyy09354;server=.;uid=sa;pwd=sa;"; SqlConnection con = new SqlConnection(connection); con.Open(); string sql = "insert into stu_0907013401(szjm _ykt,szjm _name,Szjm _Class) values('" + ykt + "','" + pwd + "','" + szjm _Class + "')"; SqlCommand comm = new SqlCommand(sql, con); comm.ExecuteNonQuery(); con.Close(); MessageBox.Show("ok"); } |
四 通过以下界面查询你的信息,注意查询是按照用户模糊查询进行,并绑定到DataGridView1里面显示。如图所示
(姓名TextBox控件 ID :txt_username,查询按钮ID button1,DataGridView1显示查询到的学生信息)。
|
private void button1_Click(object sender, EventArgs e) { string name = txt_username.Text.Trim(); string connection = "database=jsjyy09354;server=.;uid=sa;pwd=sa;"; SqlConnection con = new SqlConnection(connection); con.Open(); string sql = "select * from stu_0907013401 where szjm _name like '%" + name + "%'"; SqlCommand comm = new SqlCommand(sql, con); DataSet ds = new DataSet(); SqlDataAdapter sda = new SqlDataAdapter(comm); sda.Fill(ds); con.Close(); dataGridView1.DataSource = ds.Tables[0].DefaultView; } |
五、通过以下界面删除你的信息,按照一卡通号码,姓名,班级精确删除。如图所示
(一卡通号码TextBox控件 ID :txt_ykt,姓名 TextBox控件 ID: txt_username,班级姓名 TextBox控件 ID: txt_class;删除按钮ID button1,返回按钮ID是button2)
|
private void button1_Click(object sender, EventArgs e) { string ykt = txt_ykt.Text.Trim(); string pwd = txt_username.Text.Trim(); string szjm _Class = txt_class.Text.Trim(); string connection = "database=jsjyy09354;server=.;uid=sa;pwd=sa;"; SqlConnection con = new SqlConnection(connection); con.Open(); string sql = "delete from stu_0907013401 where szjm _ykt='" +ykt + "' and szjm _name='" + pwd + "' and Szjm _Class='" + szjm _Class + "'"; SqlCommand comm = new SqlCommand(sql, con); comm.ExecuteNonQuery(); con.Close(); MessageBox.Show("ok"); } |
六、按照一卡通号码和姓名,修改班级为你现在的班级。如图所示
(一卡通号码TextBox控件 ID :txt_ykt,姓名 TextBox控件 ID: txt_username,班级姓名 TextBox控件 ID: txt_class;修改按钮ID button1,返回按钮ID是button2)
|
private void button1_Click(object sender, EventArgs e) { string ykt = txt_ykt.Text.Trim(); string pwd = txt_username.Text.Trim(); string szjm _Class = txt_class.Text.Trim(); string connection = "database=jsjyy09354;server=.;uid=sa;pwd=sa;"; SqlConnection con = new SqlConnection(connection); con.Open(); string sql = "update stu_0907013401 set Szjm _Class='" + szjm _Class + "' where szjm _ykt='" + ykt + "' and szjm _name='" + pwd + "'"; SqlCommand comm = new SqlCommand(sql, con); comm.ExecuteNonQuery(); con.Close(); MessageBox.Show("ok"); } |
七、创建一个WEB网站,按照登录页面,写出HTML代码。如图所示
HTML代码:
|
<html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>登录界面</title> </head> <body> <form id="form1" runat="server"> <div> <table > <tr> <td> <asp:Label ID="Label1" runat="server" Text="用户名:"></asp:Label> <asp:TextBox ID="TextBox1" runat="se rver"></asp:TextBox> </td> </tr> <tr> <td> <asp:Label ID="Label2" runat="server" Text="密码:"></asp:Label> <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> </td> </tr> <tr> <td align ="center"> <asp:Button ID="Button1" runat="server" Text="登录" /> <asp:Button ID="Button2" runat="server" Text="退出" /> </td> </tr> </table> </div> </form> </body> </html> |
八、手机开发,根据学生一卡通号码精确查询到学生信息,采用SQLCE数据库,数据表结构如下面描述。
(一卡通号码TextBox控件 ID :txt_ykt ,查询按钮ID button1,把查询到的信息绑定到dataGrid1里面显示)
|
private void button1_Click(object sender, EventArgs e) { string str_sql = " select * from tb1 "; if (txt_ykt<>""){ str_sql=" where ykt=’"+ "’ ";} string str_conn = ("Data Source =" + (System.IO.Path.GetDirectoryName (System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\Stu1.sdf;")); SqlCeConnection conn = new SqlCeConnection(str_conn); conn.Open(); SqlCeCommand comm = new SqlCeCommand(str_sql, conn); DataSet ds = new DataSet(); SqlCeDataAdapter sqldata = new SqlCeDataAdapter(comm); sqldata.Fill(ds); conn.Close(); dataGrid1.DataSource = ds.Tables[0].DefaultView; } |
九、论述SqlConnection ,SqlAommand,SqlAdapter,DataSet 在ADO.NET 编程中的作用和关系。
|
strCnn 是连接SQL 2005的数据库连接字符串,可以直接设定,也可以通过设置配置文件来设置。 SqlConnection是SQL Server 数据库的一个打开的连接。 Sql 是需要访问数据库的SQL语句 SqlDataAdapter用于填充 DataSet 和更新 SQL Server 数据库的一组数据命令和一个数据库连接。Fill 方法用来填充填充 DataSet 或 DataTable数据集。 DataSet 是从数据源中检索到的数据在内存中的缓存。DataSet 由一组 DataTable 对象组成。 |
十、有Form1 窗体和Form2窗体,Form1窗体传递用户名和用户班级到From2窗体并显示运行效果如下图所示。
Form1参数发送窗体用户名TextBox ID是txt1 ,班级TextBox ID是txt2
Form2 参数发送窗体用户名TextBox ID是txt1 ,班级TextBox ID是txt2
试编写参数传递代码,Form1 【参数传递】ID 是button1
|
Form1: private void button1_Click(object sender, EventArgs e) { string name = txt1.Text.Trim(); string szjm _Class = txt2.Text.Trim(); Form2 from_1 = new Form2(); from_1.Szjm _name = name; from_1.Szjm _Class = szjm _Class; from_1.ShowDialog(); } |
Form2代码: private string szjm _name; public string Szjm _name { get { return szjm _name; } set { szjm _name = value; } } private string szjm _Class; public string Szjm _Class { get { return szjm _Class; } set { szjm _Class = value; } } private void Form2_Load(object sender, EventArgs e) { txt1.Text = szjm _name; txt2.Text = szjm _Class; } |
浙公网安备 33010602011771号