知识大全 SQL存储过程在.NET数据库中的应用(2)
Posted 属性
篇首语:贵有恒何必三更眠五更起,最无益只怕一日曝十日寒。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 SQL存储过程在.NET数据库中的应用(2)相关的知识,希望对你有一定的参考价值。
SQL存储过程在.NET数据库中的应用(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
五.创建简单存储过程的数据库应用程序 下面我们就运用上述的不带参数的存储过程来一个数据库应用程序 其中还用到了ADO NET中的SqlDataAdapter对象以及DataSet对象 其中的SqlDataAdapter对象作为SQL Server数据库和DataSet对象的桥梁将两者联系在一起 SqlDataAdapter对象包含了两个常用的方法 Fill()方法和Update()方法 其中的Fill()方法能从数据库中获取相应数据并填充到DataSet对象中 而Update()方法顾名思义就是更新数据集的意思了 在调用Fill()方法以前 我们必须设置好SqlDataAdapter对象的SelectCommand属性 该属性其实是一个SqlCommand对象 SelectCommand属性中包含有效的SQL语句 并能据此从数据库中获取相应数据并填充到DataSet对象中 首先 我们创建一个Windows Forms应用程序 编程语言为C# 在Visual Studio NET中创建一个新的项目后 给该项目添加一个新的类-Publishers类 该类封装了连接到后台数据库并获取数据集对象的业务逻辑 步骤如下 .添加必要的命名空间引用 using System Data SqlClient; .给该类添加如下一些必要的变量 .在该类的构造函数中完成连接后台数据库 获取SqlDataAdapter对象等业务逻辑 .最后为该类提供一个GetPublisherInfo()方法 该方法用SqlDataAdapter对象填充DataSet对象并返回填充后的DataSet对象 方法如下(值得注意的是 SqlDataAdapter对象会隐式地打开数据库连接并在获取数据后隐式地关闭连接 这就是说DataSet对象是工作在非连接模式下的 而当你显式地打开数据库连接并获取数据后 SqlDataAdapter对象并不会将该连接关闭) 完成Publishers类的设计后 我们给主窗体添加一个DataGrid控件并用它来显示DataSet对象中的数据 首先给主窗体类添加如下成员变量 这样该应用程序一启动主窗体的DataGrid控件中便显示了运用上述不带参数的存储过程从Pubs数据库中获取的相应数据 程序运行图示如下 六.创建带参数的存储过程的数据库应用程序 上面我们创建了一个不带参数的存储过程的应用程序 下面我们就来创建一个更加复杂的数据库应用程序 在实际的数据库应用中 我们往往需要获取数据并更新 插入或删除数据 这时我们就需要用到带有参数的存储过程了 同时在运用SqlDataAdapter对象时 我们会调用它的Update()方法 该Update()方法会自动根据DataSet对象中的DataTable对象内各条记录的变化情况完成相应操作 SqlDataAdapter对象还包含了UpdateCommand InsertCommand DeleteCommand等属性 这些属性其实都是SqlCommand对象 Update()方法会根据操作的类型选用相应的属性 在运用带有参数的存储过程建立数据库应用程序时 我们一般都要用到SqlParameter类 该类封装了各种与Sql参数相关的属性和方法 其中的属性包括了ParameterName SqlDBType Direction Size Value SourceColumn以及SourceVersion等 其中ParameterName SqlDBType Direction Size等属性是用于匹配存储过程中定义的参数的 比如下面定义的SqlParameter对象就是用来匹配前面定义的up_UpdatePublisherInfo存储过程中的 @pub_id 参数的 SqlParameter updParam = new SqlParameter( @pub_id SqlDbType Char ); 在上面的定义中 虽然Direction属性没有明确地给出 但是它的默认值为Input 所以也就满足了我们的需要 而如果一个SqlParameter对象的Direction属性为InputOutput或Output或ReturnValue 那么其Direction属性就必须明确地说明了 比如下面的代码就明确地声明了一个SqlParameter对象的Direction属性为Output oParam Direction = ParameterDirection Output; 其中的SourceColumn属性是用于匹配一个DataTable对象中的DataColumn对象的 这种匹配能在调用Update()方法更新DataTable对象时隐式地导入所需的SqlParameter对象 如果在定义时没有声明该属性 那么你必须在代码中显式地说明SqlParameter对象的SourceColumn属性 其中的SourceVersion属性的默认值是DataRow对象相应字段中的当前值 也就是要更新到数据库中的值 当然 SourceVersion属性也可以指向DataRow对象相应字段中的原始值 也即从数据库中获取的初始值 在数据库事务处理系统中 数据的同步性问题非常重要 下面我们来建立一个能检测数据同步性的存储过程 接着 我们在上面的应用程序中调用该存储过程以更新发行商的名称 首先 在原有应用程序的基础上完善其业务逻辑类-Publishers类 应用程序的业务逻辑类完善之后 在主窗体上添加一个名为 更新数据集 的按钮 并添加该按钮的事件响应函数如下 到此为止 应用程序的业务逻辑类和主窗体类都已经更新完毕 现在的应用程序能根据用户的改用更新数据库中的相关内容了 运行程序如图 所示 你在更新了数据后还可以打开SQL Server中的相应表并验证数据有没有更新成功 七.总结 本文向大家介绍了存储过程的基本知识以及在 NET数据库应用程序中如何结合SqlDataAdapter对象 DataSet对象等构建数据驱动的应用程序 在本文中 我们运用到了两类存储过程 一类为简单的不带参数的存储过程 其运用方法相对容易 另一类为带有参数的存储过程 在调用该类存储过程时还得运用到SqlParameter对象 同时 我们不难发现将数据更新业务逻辑封装在存储过程中是一种很好的设计方法 它能提高应用程序的可管理性 可扩展性以及数据库的安全性 类似的 插入数据以及删除数据的业务逻辑也可以封装在存储过程中并以相似的方法在应用程序中被运用 最后 希望本文对大家有不少帮助 源代码文件下载 StoredProc zip cha138/Article/program/SQLServer/201311/22065相关参考
知识大全 .Net下调用SQL Server2000中存储过程
.Net下调用SQLServer2000中存储过程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
SQL大数据量分页存储过程效率测试 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! /*存储过程分
SQLServer编写存储过程小工具 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在开发数据库
知识大全 在 Visual Studio .NET 中使用 SQL Server 2000 创建数据库应用程
在VisualStudio.NET中使用SQLServer2000创建数据库应用程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内
数据库基础:存储过程中如何执行带输出参数的动态SQL 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
我们有时候需要在本地数据库的存储过程中或者在其他SQL语句中要访问一个远程数据库我们可以这样做 在存储过程中连接远程数据库并进行操作 查看远程数据库的相关数据 SERVICE_NAME 两
高效SQL分页存储过程(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Book类负责查询数
sqlupdate语法与实例 在日常使用的数据库教程是一个不断变化的数据存储在SQL是用于修改数据已经在数据库中的更新和删除mandsThe更新语句可以更新表格中的一个或多个记录命令 UPDA
SQLServer存储过程编写和优化措施[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb
在写插入新记录的存储过程时存储过程的参数一般和实体类的属性对应 但在前台接收数据时不一定需要所有的实体类属性这样就有一些属性没有被赋值如果这些属性是引用类型而又没有被初始化在给存储过程参数赋值时