目录
教学资源
教学运行
提醒实验5: SqlCommand对象操作数据表 返回
实验课程:
C#数据库系统开发
开课学院:
商学院
开课专业:
信息管理与信息系统
教材:
软件:
实验指导:
实验介绍

实验5:  SqlCommand对象操作数据表

一、实验名称和性质

 

所属课程

C#数据库系统设计

实验名称

SqlCommand对象操作数据表

实验学时

4

实验性质

□验证  □综合 □设计

必做/选做

□必做 □选做

 

二、实验目的

1.        了解ADO的数据对象。

2.        掌握SqlCommand的常用属性。

3.        掌握SqlCommand的常用方法。

4.        掌握SqlCommand的参数设置。

5.        掌握SqlCommand的对存储过程的调用方法。

三、实验的软硬件环境要求

硬件环境要求:

         PC机(单机)

 

使用的软件名称、版本号以及模块:

         Windows XP下的SQL Server 2005(或 SQL Server 2008

四、知识准备

1SqlCommand对象允许你指定在数据库上执行的操作的类型。比如,你能够对数据库中的行数据执行selectinsertmodify以及delete命令。

2SqlCommand的常用属性

属性

说明

CommandType

解释CommandText的属性,值可以是Text、StoredProcedure、TableDirect 。默认值为Text。

CommandText

CommandType设置为StoredProcedure时,CommandText存放的就是所以执行的存储过程的名称,为TEXT时是T-SQL语句

Connection

Connection属性包含SqlCommand用于与数据库通信的SqlConnection对象。

CommandTimeout

CommandTimeout指定了Command等待查询结果第一行数据到达的超时时间(单位为秒) , 默认值为30。如果在CommandTimeout时间内仍未完成查询,则Command将引发异常。

3SqlCommand的常用方法

 

4.创建SqlCommand对象的方法

1直接创建一个新实例,然后设置适当属性:

        SqlCommand cmd = new SqlCommand();

        cmd.Connection = conn;

        cmd.CommandText = strSQL; 

2 利用构造函数指定查询字符串和SqlConnection连接

        SqlCommand cmd = new SqlCommand(strSQL,conn);

3 调用Sqlconnection类的CreateCommand方法:

        SqlCommand cmd = conn.CreateCommand();

        cmd.CommandText = strSQL;

 

五、实验内容

(一)验证性实验

1. 登录界面如下。根据登录界面到数据库studentuserInfo用户表中查看账号、密码是否正确。

步骤:

1)到数据student表中建立表userInfo(ID varchar(10), PWD varchar(20)),并在表UserInfo中插入2条记录以保存2个账号和密码。

2)建立窗体项目,将Form1IsMdiContainer设置为true。在上面放置一个Label控件,Text 属性设置为“欢迎进入系统”.

3)点击“项目”菜单下的“添加Windows窗体”,窗体名为 frmLogin

4)运行程序,观察结果。

5)窗体上控件如下放置。账号和密码对应的文本框Name属性改为txtID, txtPWD

6Program.cs中的

Application.Run(newForm1());

改为:

Application.Run(new frmLogin());

 

7)运行程序,记录结果。

8)在frmLogin窗体上引入Sql server数据提供程序命名空间。编写button1Click()事件代码

{  string connStr = @"server=.\sqlexpress;database=student;integrated security=true";

    SqlConnection conn = new SqlConnection(connStr);

 

string strSelect = string.Format("select count(*) from userInfo where ID='{0}' and PWD='{1}'", txtID.Text, txtPWD.Text);

SqlCommand cmd = new SqlCommand(strSelect, conn);

conn.Open();

Int  userNum= (int)cmd.ExecuteScalar();

if (userNum>=1)

               { Form1 frm = new Form1();

                   frm.Show();                 }

               else

               {    MessageBox.Show(“用户名或密码错误!”);}

}

(9) 运行程序,输入正确的账号、密码进行登录。并输入1’ or ‘1’=’1作为账号和密码进行登录,观察结果。

 

(10)ParaMeters来接收参数,将(8)中代码

string strSelect = string.Format("select count(*) from userInfo where ID='{0}' and PWD='{1}'", txtID.Text, txtPWD.Text);

SqlCommand cmd = new SqlCommand(strSelect, conn);

改为:

string strSelect = "select * from userInfo where ID=@ID and PWD=@PWD";

           SqlCommand cmd = new SqlCommand(strSelect, conn);

           cmd.Parameters .AddWithValue ("@ID",txtID .Text );

           cmd.Parameters.AddWithValue("@PWD", txtPWD.Text);

11)运行程序,输入正确的账号、密码进行登录。并输入1’ or ‘1’=’1作为账号和密码进行登录,观察结果。

(二)设计性实验

1.完成下面界面的“插入记录”命令按钮的单击事件,用SqlCommand将界面中输入的信息插入到课程表中。

2.用SqlCommand对象将界面中文本框中输入的数据作为记录的值插入课程表中, 界面输入的值传入SqlCommand对象的Parameters属性。(界面如1

六、实验报告