当前位置: 首页 > news >正文

ASP.NET中利用存储过程实现模糊查询

一、建立存储过程

  在MSSQL中的Northwind数据库中为employess表新建存储过程(作用按LastName进行模糊查询):

CREATE PROCEDURE Employess_Sel @lastname nvarchar (20)
AS
select lastname from Employees where lastname like '%' + @lastname + '%'
GO

  二、窗体设计

  1、新建ASP.NET Web应用程序,命名为WebSql,选择保存路径然后点击确定。

  2、向窗体中添加一个Label、一个Textbox和一个Button按钮,然后再添加一个DataGrid控件,右击DataGrid控件选择属性生成器,然后在打开的窗口中选择列,去掉自动创建列前的对勾,再向选定列中添加一个绑定列将页眉设为LastName,将数据字段设为LastName。点击确定。

  三、创建中间数据层

  右击解决方案,选择新建-项目-类库,名称为ClaSQL,选择保存路径然后点击确定。在打开的类库中添加以下代码:

Imports System.Data.SqlClient
Public Class Class1
 Dim scon As New SqlConnection("server=localhost;database=northwind;uid=sa;pwd=123")

 '创建一个进行查询的过程
 Public Function Emp_Sel(ByVal lastname As String) As DataSet
  scon.Open()
  scon.Close()
  '定义命令对象,并使用储存过程
  Dim scom As New SqlCommand
  scom.CommandType = CommandType.StoredProcedure
  scom.CommandText = "Employess_Sel"
  scom.Connection = scon
  '定义一个数据适配器,并设置参数
  Dim sda As New SqlDataAdapter(scom)
  sda.SelectCommand.Parameters.Add("@lastname", SqlDbType.NVarChar).Value = lastname
  '定义一个数据集对象,并填充数据集
  Dim ds As New DataSet
  Try
   sda.Fill(ds)
  Catch ex As Exception
  End Try
  Return ds
  End Function
End Class

  四、引用中间数据层(类库)

  在ClaSql项目上右击,选择生成,然后在WebSql项目的“引用”上右击,选择添加引用,再选择项目,将ClaSql项目添加到选定的组件框中,然后点击确定。

  五、WebForm1.aspx窗体代码设计

  打开WebSql项目下的WebForm1.aspx文件,双击Button按钮打开代码窗口,完整的代码如下:

Public Class WebForm1
 Inherits System.Web.UI.Page
 '窗体代码略
 '搜索按钮事件
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  '定义变量储存文本框的输入,出于安全的目的对其进行转换
  Dim lastname As String = TextBox1.Text
  lastname = lastname.Replace("&", "&")
  lastname = lastname.Replace("<", "")
  lastname = lastname.Replace(">", "")
  lastname = lastname.Replace("'", "’")
  lastname = lastname.Replace("chr(13)", "<br>")
  lastname = lastname.Replace("chr(10)", "<br>")

  '创建一个新的类实例,并调用查询过程绑定数据
  Dim myCla As New ClaSql.Class1

  DataGrid1.DataSource = myCla.Emp_Sel(lastname)
  DataGrid1.DataBind()
 End Sub
End Class

  六:注意事项

  出于安全等方面考虑,在对数据库操作中应尽量采取以下措施:

  1、使用储存过程

  2、不要使用SA账户

  3、要使用复杂账户的密码

  4、对于数据的插入、删除等尽量使用不同的账户来操作,并对每个不同账户只设置相应的插入或删除等权限

  5、对数据库的操作应该尽量将其封装到中间层(类库)中,这样即可以实现代码的重用,也方便以后的进行修改。

相关文章:

  • 设计模式之备忘录模式详解(Memento Pattern)
  • 从asp转asp.net的相关
  • 设计模式之状态模式详解(State Pattern)
  • 浅谈DataSet 的用法
  • 多维数组和矩阵之顺时针打印二维数组
  • 各种数据库连接代码(JSP)
  • 多维数组与矩阵之0所在的行列清零
  • 多维数组与矩阵之之字形打印矩阵
  • 生姜有味的调色板
  • 设计模式之策略者模式详解(Strategy Pattern)
  • 利用J2ME里的RMS对记录进行排序
  • 设计模式之职责链(责任链)模式(ResponsibilityChain Pattern)
  • SWT GC的drawLine方法的一个隐藏Bug
  • 多维数组与矩阵之子数组的最大累加和
  • 游戏也是软件,J2ME游戏程序员不能忘本
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Fabric架构演变之路
  • Git的一些常用操作
  • Java知识点总结(JavaIO-打印流)
  • js ES6 求数组的交集,并集,还有差集
  • Linux各目录及每个目录的详细介绍
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • PAT A1120
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • SpringCloud集成分布式事务LCN (一)
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • Zsh 开发指南(第十四篇 文件读写)
  • 不上全站https的网站你们就等着被恶心死吧
  • 诡异!React stopPropagation失灵
  • 计算机常识 - 收藏集 - 掘金
  • 跨域
  • 老板让我十分钟上手nx-admin
  • 爬虫模拟登陆 SegmentFault
  • 数据结构java版之冒泡排序及优化
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 消息队列系列二(IOT中消息队列的应用)
  • 2017年360最后一道编程题
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ​queue --- 一个同步的队列类​
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • $(function(){})与(function($){....})(jQuery)的区别
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (31)对象的克隆
  • (javascript)再说document.body.scrollTop的使用问题
  • (Oracle)SQL优化技巧(一):分页查询
  • (Python第六天)文件处理
  • (二)springcloud实战之config配置中心
  • (二)换源+apt-get基础配置+搜狗拼音
  • (三) diretfbrc详解
  • (三)uboot源码分析
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (转)VC++中ondraw在什么时候调用的
  • (状压dp)uva 10817 Headmaster's Headache