A. 使用数据命令与数据库交互 要在数据库中执行操作,应执行 SQL 语句或存储过程(它包括 SQL 语句)。您使用 SQL 语句或存储过程读写行并执行聚合函数,例如添加或求平均值。您还使用 SQL 语句或存储过程创建或修改表或列、执行事务等。 paper51.com 以下是一个办公信息管理系统管理系统中一个验证登陆的函数 内容来自www.paper51.com Public Function validateLogin(ByVal uid As String, ByVal pwd As String) As Boolean http://www.paper51.com Dim IsCorrect As Boolean = False paper51.com Dim cnmy As New SqlConnection(“server=(local);database=lib2004;uid=sa;pwd=”) paper51.com
Dim cmd As New SqlCommand copyright paper51.com
With cmd paper51.com
.Connection = cnmy http://www.paper51.com
.CommandType = CommandType.Text paper51.com .CommandText = "select count(*) from manager where Man_id=@Man_idand Man_pwd=@Man_pwd" http://www.paper51.com End With paper51.com Dim mMan_id As New SqlParameter("@Man_id",SqlDbType.NVarChar, 50) http://www.paper51.com Dim mMan_pwd As New SqlParameter("@Man_pwd",SqlDbType.NVarChar, 12) 内容来自www.paper51.com With cmd.Parameters 内容来自www.paper51.com .Add(mMan_id) 内容来自论文无忧网 www.paper51.com
.Add(mMan_pwd) paper51.com End With copyright paper51.com mMan_id.Value = uid copyright paper51.com mMan_pwd.Value = pwd 内容来自论文无忧网 www.paper51.com Try copyright paper51.com cnmy.Open() copyright paper51.com If cmd.ExecuteScalar = 1 Then 内容来自www.paper51.com
IsCorrect = True paper51.com
End If 内容来自论文无忧网 www.paper51.com
Catch ex As Exception 内容来自www.paper51.com MessageBox.Show("登陆验证时数据库发生错误" + vbCrLf +ex.Message, _ 内容来自www.paper51.com "error", MessageBoxButtons.OK, MessageBoxIcon.Stop) 内容来自www.paper51.com Return False http://www.paper51.com Finally copyright paper51.com cnmy.Close() 内容来自论文无忧网 www.paper51.com If Notcnmy Is NothingThen http://www.paper51.com cnmy.Dispose() paper51.com End If copyright paper51.com End Try 内容来自论文无忧网 www.paper51.com Return IsCorrect 内容来自论文无忧网 www.paper51.com EndFunction 内容来自论文无忧网 www.paper51.com 现在对这个函数按步骤详细说明。 paper51.com 该例子体现了如何执行sql语句。 paper51.com 该实例用到了System.Data.SqlClient命名空间中两个重要的对象:1.连接对象SqlConnection;2.sql命令对象SqlCommand。 http://www.paper51.com SqlConnection对象表示与 SQL Server 数据源的一个唯一的会话。对于数据端/服务器数据库系统,它相当于到服务器的网络连接。 内容来自论文无忧网 www.paper51.com 其重要属性如下表: 内容来自论文无忧网 www.paper51.com ConnectionString http://www.paper51.com 获取或设置用于打开 SQL Server 数据库的字符串。 paper51.com
ConnectionString格式如下: http://www.paper51.com 使用sql验证方式:(server=服务器名称;database=数据库名称;uid=用户名;pwd=密码) copyright paper51.com 使用windows集成验证(server=服务器名称;database=数据库名称;Integrated Security=SSPI) paper51.com
SqlCommand对象表示要对 SQL Server 数据库执行的一个 T-SQL 语句或存储过程。其重要属性如下: copyright paper51.com CommandText 内容来自www.paper51.com
获取或设置要对数据源执行的 Transact-SQL 语句或存储过程。 内容来自www.paper51.com
CommandTimeout paper51.com 获取或设置在终止执行命令的尝试并生成错误之前的等待时间。 http://www.paper51.com CommandType copyright paper51.com 获取或设置一个值,该值指示如何解释 CommandText 属性。 http://www.paper51.com Connection copyright paper51.com
获取或设置 SqlCommand 的此实例使用的 SqlConnection。 内容来自论文无忧网 www.paper51.com
SqlCommand 特别提供了以下对 SQL Server 数据库执行命令的方法: 内容来自论文无忧网 www.paper51.com
ExecuteReader http://www.paper51.com 执行返回行的命令。为了提高性能,ExecuteReader 使用 Transact-SQL sp_executesql 系统存储过程调用命令。因此,如果用于执行像 Transact-SQL SET 语句这样的命令,ExecuteReader 可能无法获得预期效果。 http://www.paper51.com ExecuteNonQuery http://www.paper51.com
执行 T-SQL INSERT、DELELE、UPDATE 及 SET 语句等命令。 copyright paper51.com ExecuteScalar http://www.paper51.com 从数据库中检索单个值(例如一个聚合值)。 内容来自论文无忧网 www.paper51.com
ExecuteXmlReader 内容来自www.paper51.com 将 CommandText 发送到 Connection生成一个 XmlReader 对象。 内容来自论文无忧网 www.paper51.com 直接使用数据命令的基本步骤是: http://www.paper51.com (1) 新建一个SqlConnection对象,设置其ConnectionString属性。 内容来自论文无忧网 www.paper51.com (2) 新建一个SqlCommand对象,分别设置其CommandText、CommandTimeout、CommandType、Connection属性。 内容来自www.paper51.com (3) 如果要执行的T-SQL 语句或存储过程带有参数,则先要设定SqlCommand对象的Parameters属性。 内容来自www.paper51.com
(4) 调用SqlConnection对象的open方法打开连接。 内容来自www.paper51.com (5) 执行SqlCommand命令。执行的方式及相应的返回结果见上表。 内容来自www.paper51.com (6) 调用SqlConnection对象的close方法关闭连接。 paper51.com 本例使用ExecuteScalar方法返回一个聚合函数count(*)的值,count(*)返回结果为所查询到记录的个数。如果用户名和密码均符合的话,则返回一条记录,此时Count(*)值为1,符合条件,就成功的通过了验证。 paper51.com B.使用数据集 http://www.paper51.com 使用数据集DataSet与SQLserver数据库交互请参见3.3.2中关于DataSet的介绍。只是将通用的DataAdapter对象改为专用的SqlClient命名空间中的SqlDataAdapter对象即可,这里就不再重复。 copyright paper51.com |