SQL命令 SqlCommand
SqlCommand负责完成对数据库的查询、添加、删除和修改等各种操作。
SqlCommand对象的创建
SqlCommand sqlcom = new SqlCommand()
sqlCom.Connection = sqlConn; //再将SQL命令的属性Connection指向SQL连接
或
SqlCommand sqlCom = new SqlCommand(命令字符串,连接对象名);
SqlCommand对象的三种常用的命令格式:
1)sqlcom.ExecuteReader 返回一个reader对象
2)sqlcom.ExecuteNonQuery 返回一个整数,通常用在插入、删除、更新时受影响的行数
3)sqlcom.ExecuteScalar 返回检索的一个值,通常用于查询聚合函数
ExecuteNonQuery方法
对连接执行 Transact-SQL 语句并返回受影响的行数。常用于对数据库的添加、删除和修改等各种操作。
private void btn_LogIn_Click(object sender, EventArgs e)
{
SqlConnection sqlConnection = new SqlConnection(); //声明并实例化SQL连接;
sqlConnection.ConnectionString =
"Server=(local);Database=EduBaseDemo;Integrated Security=sspi"; //在字符串变量中,描述连接字符串所需的服务器地址、数据库名称、集成安全性(即是否使用Windows验证);
SqlCommand sqlCommand = new SqlCommand(); //声明并实例化SQL命令;
sqlCommand.Connection = sqlConnection; //将SQL命令的属性Connection指向SQL连接;
sqlCommand.CommandText = //指定SQL命令的命令文本;
"delete from tb_User where No='3140707001'; ";
sqlConnection.Open(); //打开SQL连接;
if (sqlcmd.ExecuteNonQuery() > 0) MessageBox.Show("记录已删除!");
else MessageBox.Show("未找到相关记录!");
sqlConnection.Close(); //关闭SQL连接;
##### ExecuteScalar方法
对连接执行 Transact-SQL 语句并返回一个值。常用于返回COUNT(*)、SUM()、AVG()等聚合函数的值。
SqlConnection sqlConnection = new SqlConnection(); //声明并实例化SQL连接;
sqlConnection.ConnectionString =
"Server=(local);Database=EduBaseDemo;Integrated Security=sspi"; //在字符串变量中,描述连接字符串所需的服务器地址、数据库名称、集成安全性(即是否使用Windows验证);
SqlCommand sqlCommand = new SqlCommand(); //声明并实例化SQL命令;
sqlCommand.Connection = sqlConnection; //将SQL命令的属性Connection指向SQL连接;
sqlCommand.CommandText = //指定SQL命令的命令文本;命令文本由字符串拼接而成;
"SELECT COUNT(1) FROM tb_User"
+ " WHERE No='" + this.txb_UserNo.Text.Trim() + "'" //将文本框的文本清除首尾的空格后,拼接至命令文本中;
+ " AND Password=HASHBYTES('MD5','" + this.txb_Password.Text.Trim() + "');";
sqlConnection.Open(); //打开SQL连接;
int rowCount = (int)sqlCommand.ExecuteScalar(); //调用SQL命令的方法ExecuteScalar来执行命令,并接受单个结果(即标量);
//执行标量的返回结果类型为object,可通过强制类型转换,转为整型;
MessageBox.Show(sqlCommand.CommandText);
sqlConnection.Close(); //关闭SQL连接;
if (rowCount == 1) //若查得所输用户号相应的1行记录;
{
MessageBox.Show("登录成功。"); //给出正确提示;
}
else //否则;
{
MessageBox.Show("用户号/密码有误,请重新输入!"); //给出错误提示;
this.txb_Password.Focus(); //密码文本框获得焦点;
this.txb_Password.SelectAll(); //密码文本框内所有文本被选中;
}