第二讲 数据操作命令对象SqlCommand

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二讲数据操作命令对象SqlCommand
一.SqlCommand对象概述
负责完成对数据库的查询、添加、删除和修改等各种操作。

SqlCommand对象的创建
SqlCommand com = new SqlCommand(命令字符串,连接对象名)
SqlCommand对象的三种常用的命令格式
1)com.ExecuteReader 返回一个reader对象
2)com.ExecuteNonQuery 返回一个整数,通常用在插入、删除、更新时受影响的行数3)com.ExecuteScalar 返回检索的一个值,通常用于查询聚合函数
二、ExecuteNonQuery方法。

对连接执行Transact-SQL 语句并返回受影响的行数。

常用于对数据库的添加、删除和修改等各种操作。

例如:用带参构造函数SqlCommand(要执行的数据库操作字符串,使用的连接对象名)构造SqlCommand对象。

//string SqlStr = "Server=127.0.0.1;User Id=sa;Pwd=;DataBase=stu";
//string SqlStr = "Server=(local);User Id=sa;Pwd=;DataBase=stu";
//string SqlStr = "Server=.;User Id=sa;Pwd=;DataBase=stu";
//string SqlStr = "Server=417-80;User Id=sa;Pwd=;DataBase=stu";
string SqlStr = "Server=192.168.200.61;User Id=sa;Pwd=;DataBase=stu";
//前三种只能用于连接本地数据库服务器
SqlConnection con = new SqlConnection(SqlStr);
con.Open();
SqlStr = "delete from [user] where [username]='aaa'";
SqlCommand cmd = new SqlCommand(SqlStr,con);
if (cmd.ExecuteNonQuery() > 0)
MessageBox.Show("记录已删除!");
else
MessageBox.Show("未找到相关记录!");
再如:用带参构造函数SqlCommand(要执行的数据库操作字符串)构造SqlCommand对象。

再通过设置Connection属性指定使用的数据库连接对象。

string SqlStr = "Server=(local);User Id=sa;Pwd=;DataBase=stu";
SqlConnection con = new SqlConnection(SqlStr);
con.Open();
SqlStr = "delete from [user] where [username]='aaa'";
SqlCommand cmd = new SqlCommand(SqlStr);
cmd.Connection = con;
if (cmd.ExecuteNonQuery() > 0)
MessageBox.Show("记录已删除!");
else
MessageBox.Show("未找到相关记录!");
再如:用无参构造函数SqlCommand()构造SqlCommand对象。

再通过设置Connection属性指定使用的数据库连接对象,设置CommandText属性指定使用的数据库操作命令,设置CommandType属性指定使用的数据库操作命令的类型。

mandType = CommandType.Text;//命令文本
mandType = CommandType.StoredProcedure;//存储过程
string SqlStr = "Server=(local);User Id=sa;Pwd=;DataBase=stu";
SqlConnection con = new SqlConnection(SqlStr);
con.Open();
SqlStr = "delete from [user] where [username]='aaa'";
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
mandText = SqlStr;
mandType = CommandType.Text;
if (cmd.ExecuteNonQuery() > 0)
MessageBox.Show("记录已删除!");
else
MessageBox.Show("未找到相关记录!");
新建一个统计记录数的存储过程jls,代码如下:
CREATE PROCEDURE jls AS (select count(*) from score)
通过存储过程的执行完成,对数据库的访问:
string SqlStr = "Server=192.168.200.61;User Id=sa;Pwd=;DataBase=stu";
SqlConnection con = new SqlConnection(SqlStr);
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
mandType = CommandType.StoredProcedure;
mandText = "jls";
MessageBox.Show("记录数为"+cmd.ExecuteScalar().ToString ());
con.Close();
con.Dispose();
实作练习:
使用SqlCommand对象完成在表中插入一条新记录,再通过SqlCommand对象完成在表中修改所有满足条件记录的值,并显示被修改的记录数。

三、ExecuteScalar方法。

对连接执行Transact-SQL 语句并返回一个值。

常用于返回COUNT(*)、SUM()、A VG ()等聚合函数的值。

例1:用ExecuteScalar方法查询一个统计值。

string SqlStr = "Server=(local);User Id=sa;Pwd=;DataBase=航班信息管理";
SqlConnection con = new SqlConnection(SqlStr);
con.Open();
SqlStr = "select count(*) from 用户表 where 用户类型='教师'";
SqlCommand cmd = new SqlCommand(SqlStr, con);
textBox1.Text = cmd.ExecuteScalar().ToString ();
例2:用用ExecuteScalar方法查询一个单值的数据。

用户登录界面设计
程序设计:
private void button1_Click(object sender, EventArgs e)
{
try
{
string SqlStr = "Server=192.168.200.61;User Id=sa;Pwd=;DataBase=stu";
SqlConnection con = new SqlConnection(SqlStr);
con.Open();
SqlStr = "select count(*) from [user] where username='"+textBox1 .Text +"'";
SqlCommand cmd = new SqlCommand(SqlStr, con);
int x= int.Parse(cmd.ExecuteScalar().ToString ());
if (x == 0)
MessageBox.Show("用户名错误!");
else
{
SqlStr = "select userpw from [user] where username='"+ textBox1.Text + "'"; mandText = SqlStr;
string pw = cmd.ExecuteScalar().ToString();
if (pw == textBox2.Text)
MessageBox.Show("登录成功!");
else
MessageBox.Show("密码错误!");
}
con.Close();
con.Dispose();
}
catch
{
MessageBox.Show("数据库访问错误!");
}
}
private void button2_Click(object sender, EventArgs e)
{
Application.Exit();
}
练习:
学生管理系统的用户有三种类型,管理员、学生、教师。

用户登录后,输入用户名、密码、选择用户类型,系统验证用户身份后进行学生管理系统主界面,主界面菜单的用户管理中有添加用户、删除用户、修改用户、修改密码等操作命令。

管理员登录后可完成添加用户、删除用户、修改用户等操作,其他用户登录后只能在正确输入自己的原有用户密码后,完成修改密码的操作。

相关文档
最新文档