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

(0)

相关推荐

  • asp.net汉字转拼音和获取汉字首字母的代码

    ConvertHzToPz_Gb2312.cs 复制代码 代码如下: using System; using System.Data; using System.Configuration; using System.Text; /// <summary> /// Summary description for ConvertHzToPz_Gb2312 /// </summary> public class ConvertHzToPz_Gb2312 {  public Conver

  • asp.net 自动将汉字转换成拼音第一个字母

    /// <summary> /// 把汉字转换成拼音第一个字母 /// </summary> /// <param name="ChineseStr"></param> /// <returns></returns> private string ChineseCap(string ChineseStr) { string Capstr=""; byte[] ZW = new byte[2];

  • asp.net利用存储过程实现模糊查询示例分享

    复制代码 代码如下: USE [TestDB]GO /****** Object:  Table [dbo].[tblCustomer]    Script Date: 01/18/2014 22:01:53 ******/SET ANSI_NULLS ONGO SET QUOTED_IDENTIFIER ONGO CREATE TABLE [dbo].[tblCustomer]( [id] [int] IDENTITY(1,1) NOT NULL, [name] [nvarchar](100)

  • ASP.NET实现按拼音码模糊查询的方法

    整个过程分为两部分:生成拼音码字段.按拼音码进行模糊查询. 批量生成拼音码字段的实现: protected void Button1_Click1(object sender, EventArgs e) { string strSQL; strSQL = "select mc from TEST001"; IDataReader dr = dac.DataReaderQuery(strSQL); while (dr.Read()) { string mc=dr["mc&quo

  • asp.net 多字段模糊查询代码

    string strField = "id|className|classAdd"; string strKeyWords = this.tbxKeyWords.Text.Trim(); string strSql = dbexe.searchText("select * from class", strField, strKeyWords); 经常用到多字段的模糊查询,上面的函数可以实现,例如strKeyWords值为"我们"时,可以输出: s

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

    一.建立存储过程 在MSSQL中的Northwind数据库中为employess表新建存储过程(作用按LastName进行模糊查询): CREATE PROCEDURE Employess_Sel @lastname nvarchar (20)ASselect lastname from Employees where lastname like '%' + @lastname + '%'GO 二.窗体设计 1.新建ASP.NET Web应用程序,命名为WebSql,选择保存路径然后点击确定.

  • asp.net中调用存储过程的方法

    本文实例讲述了asp.net中调用存储过程的方法.分享给大家供大家参考,具体如下: 一.建立并调用一个不带参数的存储过程如下: CREATE PROCEDURE 全部学生<dbo.selectUsers> AS SELECT * FROM 学生 GO EXEC 全部学生 建立并调用一个带参数的存储过程如下: CREATE PROCEDURE 学生查询1 @SNAME VARCHAR(8),@SDEPT VARCHAR(20) AS SELECT * FROM 学生 WHERE 姓名=@SNAM

  • ASP.Net中利用CSS实现多界面的两种方法

    本文实例讲述了ASP.Net中利用CSS实现多界面的两种方法.分享给大家供大家参考.具体实现方法如下: 可以通过使页面动态加载不同CSS来实现多界面的效果: 方法一: 复制代码 代码如下: <%@page language="C#"%> <%@import namespace="System.Data"%> <script language="c#" runat="server"> publ

  • mysql中使用instr进行模糊查询方法介绍

    在mysql中使用内部函数instr,可代替传统的like方式查询,并且速度更快. instr 函数,第一个参数是字段,第二个参数是要查询的串,返回串的位置,第一个是1,如果没找到就是0. 例如,查询字段name中带"军"的名字,传统的方法是: select name from 用户表 where name like `%军%'; 用instr的方法: select name from 用户表 where instr('name','军'); 或: select name from 用

  • Oracle中Like与Instr模糊查询性能大比拼

    instr(title,'手册')>0 相当于 title like '%手册%' instr(title,'手册')=1 相当于 title like '手册%' instr(title,'手册')=0 相当于 title not like '%手册%' t表中将近有1100万数据,很多时候,我们要进行字符串匹配,在SQL语句中,我们通常使用like来达到我们搜索的目标.但经过实际测试发现,like的效率与instr函数差别相当大.下面是一些测试结果: SQL> set timing on

  • ASP.NET中利用WebClient上传图片到远程服务的方法

    一.客户端 1.页面 <form id="Form1" method="post" runat="server" enctype="multipart/form-data"> <input id="MyFile" type="file" runat="server" /> <br /> <br /> <asp:Bu

  • asp.net中oracle 存储过程(图文)

    在大型数据库系统中,存储过程和触发器具有很重要的作用.无论是存储过程还是触发器,都是SQL 语句和流程控制语句的集合. ORACLE代码 CREATE OR REPLACE PROCEDURE gd_CURSOR(MYCS1 OUT SYS_REFCURSOR,MYCS2 OUT SYS_REFCURSOR,a out varchar)as BEGIN a:='test'; OPEN MYCS1 FOR SELECT 1 from dual; OPEN MYCS2 FOR SELECT 2 fr

  • Mybatis 中 Oracle 的拼接模糊查询及用法详解

    一.结论 这里先给大家看一下结论 Oracle 中,拼接模糊查询的正确写法 SELECT A.USER_ID, A.USER_NAME FROM USER A AND A.USER_NAME like concat(concat('%','w'),'%') 或者 AND A.USER_NAME like '%' || 'w' || '%' Mybatis 中,拼接模糊查询的正确写法 <select id="selectByName" resultMap="BaseRes

随机推荐