实验5: SqlCommand对象操作数据表
一、实验名称和性质
所属课程 | C#数据库系统设计 |
实验名称 | SqlCommand对象操作数据表 |
实验学时 | 4 |
实验性质 | ✓□验证 □综合 ✓□设计 |
必做/选做 | ✓□必做 □选做 |
二、实验目的
1. 了解ADO的数据对象。
2. 掌握SqlCommand的常用属性。
3. 掌握SqlCommand的常用方法。
4. 掌握SqlCommand的参数设置。
5. 掌握SqlCommand的对存储过程的调用方法。
三、实验的软硬件环境要求
硬件环境要求:
PC机(单机)
使用的软件名称、版本号以及模块:
Windows XP下的SQL Server 2005(或 SQL Server 2008)
四、知识准备
1.SqlCommand对象允许你指定在数据库上执行的操作的类型。比如,你能够对数据库中的行数据执行select,insert,modify以及delete命令。
SqlCommand的常用属性
属性 | 说明 |
CommandType | 解释CommandText的属性,值可以是Text、StoredProcedure、TableDirect 。默认值为Text。 |
CommandText | CommandType设置为StoredProcedure时,CommandText存放的就是所以执行的存储过程的名称,为TEXT时是T-SQL语句 |
Connection | Connection属性包含SqlCommand用于与数据库通信的SqlConnection对象。 |
CommandTimeout | CommandTimeout指定了Command等待查询结果第一行数据到达的超时时间(单位为秒) , 默认值为30。如果在CommandTimeout时间内仍未完成查询,则Command将引发异常。 |
SqlCommand的常用方法
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. 登录界面如下。根据登录界面到数据库student的userInfo用户表中查看账号、密码是否正确。
步骤:
(1)到数据student表中建立表userInfo(ID varchar(10), PWD varchar(20)),并在表UserInfo中插入2条记录以保存2个账号和密码。
(2)建立窗体项目,将Form1的IsMdiContainer设置为true。在上面放置一个Label控件,其Text 属性设置为“欢迎进入系统”.
(3)点击“项目”菜单下的“添加Windows窗体”,窗体名为 frmLogin。
(4)运行程序,观察结果。
(5)窗体上控件如下放置。账号和密码对应的文本框Name属性改为txtID, txtPWD。
(6)将Program.cs中的
Application.Run(newForm1());
改为:
Application.Run(new frmLogin());
(7)运行程序,记录结果。
(8)在frmLogin窗体上引入Sql server数据提供程序命名空间。编写button1的Click()事件代码
{ 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)
六、实验报告