第四周学习笔记(2019.3.23)
主题:设计中的SqlHelper
- 什么是SqlHelper
在vs2010中可以创建一个SqlHelper类。在敲代码的时候,经常会出现大量代码重复的现象,这样的话,不仅不利于代码的修改,而且在同一个界面大量重复的代码显得非常乱。这时候你可以将这些重复的代码封装成一个类——SqlHelper,需要用的时候在数据层调用它就行了。 - 有关SqlHelper的知识点
一些比较常用的方法:ExecuteNonQuery:
此方法用于执行不返回任何行或值的命令。这些命令通常用于执行数据库更新,但也可用于返回存储过程的输出参数。ExecuteReader:
此方法用于返回 SqlDataReader 对象,该对象包含由某一命令返回的结果集。ExecuteDataset:
此方法返回 DataSet 对象,该对象包含由某一命令返回的结果集。ExecuteScalar:
此方法返回一个值。该值始终是该命令返回的第一行的第一列。注意:
无论是什么方法,所有命令都通过SqlCommand对象来执行,在执行命令前,所有的参数都必须添加到Parameters 集合中。 - 如何使用SqlHelper
以我自己设计中的管理员登入为例
未用SqlHelper的代码如下
注释请看代码后面
SqlConnection sqlConnection = new SqlConnection();
sqlConnection.ConnectionString =
"Server=(local);Database=hypertension;Integrated Security=sspi";//连接本地数据库
SqlCommand sqlCommand = sqlConnection.CreateCommand();//用sqlConnection的CreateCommand属性创建命令
sqlCommand.CommandText =
"SELECT COUNT(1) FROM tb_adimin WHERE [email protected] AND [email protected]";
SqlParameter sqlParameter = new SqlParameter();
sqlParameter.ParameterName = "@Name";
sqlParameter.Value = this.txb_name.Text.Trim();
sqlParameter.SqlDbType = SqlDbType.VarChar;
sqlCommand.Parameters.Add(sqlParameter);//这一小段代码是将txb_name文本框里的内容赋值给参数@Name
sqlCommand.Parameters.AddWithValue("@Pasw", this.txb_pasw.Text.Trim());
sqlCommand.Parameters["@Pasw"].SqlDbType = SqlDbType.Char;
sqlParameter.Size = 8;//这一小段代码是将txb_name文本框里的内容赋值给参数@Pasw
sqlConnection.Open();
int rowCount = (int)sqlCommand.ExecuteScalar();//受影响的行数
sqlConnection.Close();
if (rowCount == 1)
{
MessageBox.Show("登入成功!");
}
else
{
MessageBox.Show("用户名/密码有误请重新输入!");
this.txb_pasw.Focus();
this.txb_name.SelectAll();
}
}
时你会发现,如果这个页面中出现注册或者修改密码等功能时,很多代码就会重复出现,非常冗杂,为了避免这个问题,你就可以使用SqlHelper
修改之后的代码,如图:
设计页面
SqlHelper类
运行结果如图: