《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) 增加你的一卡通号码到你创建的表里面,密码统一设置为’1234567890’,请写出T-SQL语句,用户名设置成你的名字。
insert
into stu_0907013401(Szjm _name,User_PassWord,User_Class)
values ('0907013401','1234567890','计应34')
|
(4) 修改你的一卡通号到你创建的表里面,密码统一修改为’054321’,请写出T-SQL语句。
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;
}
|