一.思维导图
1.关于SqlConnection类。
属性 | ConnectionString | 获取或设置用于打开 SQL Server 数据库的字符串。 |
方法 | 0pen() | 使用 ConnectionString 所指定的属性设置打开数据库连接。 |
Close() | 关闭与数据库的连接。 此方法是关闭任何已打开连接的首选方法。 | |
CreateCommand() | 创建并返回一个与 SqlConnection 关联的 SqlCommand 对象。 |
2.关于SqlCommand类。
属性 | Connection | 获取或设置SqlCommand的实例使用的SqlConnection。 |
CommandText | 获取或设置要对数据源执行的Transact—SQL语句或存储过程。 | |
CommandType | 获取或设置一个值,该值指示如何解释CommandText属性。 | |
Parameters | 参数化查询 | |
方法 | ExecuteNonQuery() | 返回值类型为int型。多用于执行增加,删除,修改数据。返回受影响的行数。 |
ExecuteReader() | 返回类型为SqlDataReader。此方法用于用户进行的查询操作。使用SqlDataReader对象的Read();方法进行逐行读取。 | |
ExecuteScalar() | 返回值类型多为int类型。它返回的多为执行select查询。得到的返回结果为一个值的情况,比如使用count函数求表中记录个数或者使用sum函数求和等。 |
二.实例(实现登录)
1.声明并实例化SQL连接,并在字符串变量sqlConnection中,描述连接字符串所需的服务器地址、数据库名称、集成安全性(即是否使用Windows验证)
1 SqlConnection sqlConnection = new SqlConnection(); 2 SqlConnection.ConnectionString ="Server=(local);Database=EduBaseDemo;Integrated Security=sspi";
2. Sqlcommand---Connection、CommandText
1 SqlCommand sqlCommand = new SqlCommand(); //声明并实例化SQL命令; 2 sqlCommand.Connection = sqlConnection; //将SQL命令的属性Connection指向SQL连接; 3 sqlCommand.CommandText = //指定SQL命令的命令文本;命令文本由字符串拼接而成; 4 "SELECT COUNT(1) FROM tb_User" 5 + " WHERE No='" + this.txb_UserNo.Text.Trim() + "'" //将文本框的文本清除首尾的空格后,拼接至命令文本中; 6 + " AND Password=HASHBYTES('MD5','" + this.txb_Password.Text.Trim() + "');";
3.SqlCommand---ExecuteScalar
1 sqlConnection.Open(); //打开SQL连接; 2 int rowCount = (int)sqlCommand.ExecuteScalar(); //调用SQL命令的方法ExecuteScalar来执行命令,并接受单个结果(即标量); 3 //执行标量的返回结果类型为object,可通过强制类型转换,转为整型; 4 sqlConnection.Close(); //关闭SQL连接; 5 if (rowCount == 1) //若查得所输用户号相应的1行记录; 6 { 7 MessageBox.Show("登录成功。"); //给出正确提示; 8 } 9 else //否则; 10 { 11 MessageBox.Show("用户号/密码有误,请重新输入!"); //给出错误提示; 12 this.txb_Password.Focus(); //密码文本框获得焦点; 13 this.txb_Password.SelectAll(); } //密码文本框内所有文本被选中;