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

分类: asp.net   出处:iocblog整理  更新时间:2009-08-11   添加到收藏  


  一、建立存储过程
  在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。点击确定。
  
  三、创建中间数据层[来源 www.iocblog.net]
  右击解决方案,选择新建-项目-类库,名称为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)", "
")
  lastname = lastname.replace("chr(10)", "
")
  
  '创建一个新的类实例,并调用查询过程绑定数据
  dim mycla as new clasql.class1
  
  datagrid1.datasource = mycla.emp_sel(lastname)
  datagrid1.databind()
  end sub
  end class
  
  六:注意事项
  出于安全等方面考虑,在对数据库操作中应尽量采取以下措施:
  
  1、使用储存过程
  
  2、不要使用sa账户
  
  3、要使用复杂账户的密码
  
  4、对于数据的插入、删除等尽量使用不同的账户来操作,并对每个不同账户只设置相应的插入或删除等权限
  
  5、对数据库的操作应该尽量将其封装到中间层(类库)中,这样即可以实现代码的重用,也方便以后的进行修改。[来源 www.iocblog.net]


Tag: 存储过程



文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。