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,退出按钮IDbutton2)

 

请写出登录部分代码:

 

 

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,返回按钮IDbutton2)

 

请写出【保存按钮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 button1DataGridView1显示查询到的学生信息)

 

 

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,返回按钮IDbutton2)

 

 

 

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,返回按钮IDbutton2)

 

 

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的数据库连接字符串,可以直接设定,也可以通过设置配置文件来设置。

SqlConnectionSQL Server 数据库的一个打开的连接。

Sql 是需要访问数据库的SQL语句

SqlDataAdapter用于填充 DataSet 和更新 SQL Server 数据库的一组数据命令和一个数据库连接。Fill 方法用来填充填充 DataSet DataTable数据集。

DataSet 是从数据源中检索到的数据在内存中的缓存。DataSet 由一组 DataTable 对象组成。

 

十、有Form1 窗体和Form2窗体,Form1窗体传递用户名和用户班级到From2窗体并显示运行效果如下图所示。

 

 

 

 

 

Form1参数发送窗体用户名TextBox IDtxt1 ,班级TextBox IDtxt2

 

Form2 参数发送窗体用户名TextBox IDtxt1 ,班级TextBox IDtxt2

 

试编写参数传递代码,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;

 

}