[习题]多重字段搜寻 -- DataSet/DataAdapter + SelectCommand参数 (使用参数配合 DataAdapter)...

这里是备份,原文请看我的网站:  [习题]多重字段搜寻 -- DataSet/DataAdapter + SelectCommand参数 (使用参数配合 DataAdapter)

http://www.dotblogs.com.tw/mis2000lab/archive/2010/10/13/gridview_rowcreated_rowdatabound.aspx

本文的补充范例,可以放在ASP.NET 4.0 专题实务(松岗出版)

       「上集」光盘里面的  20「网站内部的小搜寻引擎」,当作补充教材。

       这个范例,在「下集」的光盘里面也有提供。

      我做成 PDF档案,您可以下载全文。

[文章下载]网站内的搜寻引擎,单一字段与多重字段的搜寻(自己手写SqlDataSourceSelectParameter参数)
http://www.dotblogs.com.tw/mis2000lab/archive/2010/06/07/asp_net_search_engine_sample_2010.aspx

===========================================================================

ASP.NET案例精编——适用于VS 2005/2008(配光盘)

书本里面, Ch. 20-3-3小节,我们使用 DataSet  / DataAdapter来作。

本范例多了「SelectCommand 参数」的功能而已。

HTML画面都一模一样,您可以参考书本范例「Search_Engine_2_Manual.aspx

里面的观念与原理,书本上都有讲解。

( PDF 全文下载,请看 [文章下载]网站内的搜寻引擎,单一字段与多重字段的搜寻(自己手写SqlDataSource与SelectParameter参数)

比较特别的是:

      当我们使用参数的时候,SQL指令的写法略有修改。

      这段我是参考 SqlDataSource精灵产生的SQL指令,才找到错误。

      不然我也试了很久的时间

'---- 自己写的(宣告)NameSpace ----
Imports System.Web.Configuration
Imports System.Data
Imports System.Data.SqlClient

'== 其余的事件在此省略,请参阅书本。

'== 以下 有两种写法,请您任选其一即可。

    Sub DBInit()
        '----连结数据库的另一种写法----
        Dim Conn As SqlConnection = New SqlConnection(WebConfigurationManager.ConnectionStrings("您在 Web.Config档案里面的数据库连结字符串").ConnectionString)

        Try
            ' Conn.Open()    '---- 这一行批注掉,可以不用写,DataAdapter会自动开启

            '== SQL指令的写法很特别!!
            Dim mySearchString As String = "Select id,test_time,title,summary,author From test Where 1=1 "

            If TextBox1.Text <> "" Then
                mySearchString = mySearchString & " and ([title] LIKE '%' + @title + '%')"
            End If

            If TextBox2.Text <> "" Then
                mySearchString = mySearchString & " and ([summary] LIKE '%' + @summary + '%')"
            End If


            '=======================================================
            '== 参考数据:
http://msdn.microsoft.com/zh-tw/library/bbw6zyha(v=vs.80).aspx

            '== 方法一 (任选其一即可)==(start)
            'Dim myAdapter As New SqlDataAdapter()  '--务必先有 DataAdapter才行!

            'Dim selectCMD As New SqlCommand(mySearchString, Conn)
            'myAdapter.SelectCommand = selectCMD


            'If TextBox1.Text <> "" Then
            '    selectCMD.Parameters.Add("@title", SqlDbType.VarChar, 120)
            '    selectCMD.Parameters("@title").Value = TextBox1.Text
            'End If

            'If TextBox2.Text <> "" Then
            '    selectCMD.Parameters.Add("@summary", SqlDbType.VarChar, 200)
            '    selectCMD.Parameters("@summary").Value = TextBox2.Text
            'End If
            '=======================================================(方法一  end)


            '=======================================================(start)
            '== 方法二 (任选其一即可) ==(start)
            Dim myAdapter As SqlDataAdapter = New SqlDataAdapter(mySearchString, Conn)

            If TextBox1.Text <> "" Then
                myAdapter.SelectCommand.Parameters.Add("@title", SqlDbType.VarChar, 120)
                myAdapter.SelectCommand.Parameters("@title").Value = TextBox1.Text
            End If

            If TextBox2.Text <> "" Then
                myAdapter.SelectCommand.Parameters.Add("@summary", SqlDbType.VarChar, 200)
                myAdapter.SelectCommand.Parameters("@summary").Value = TextBox2.Text
            End If

            '=======================================================(方法二  end)



            Dim ds As New DataSet()
            myAdapter.Fill(ds, "test")     '//执行SQL指令。把数据库捞出来的数据,填入DataSet里面。
            '  DataSet是由许多 DataTable组成的,我们目前只放进一个名为 test的 DataTable而已。

            GridView1.DataSource = ds.Tables("test")
            GridView1.DataBind()


        Catch ex As Exception
            Response.Write("<HR/>" & ex.ToString() & "<HR/>")
        End Try
        '  使用SqlDataAdapter的时候,不需要写程序去控制Conn.Open()与 Conn.Close()。

    End Sub

关于 DataSet / DataAdapter 的范例,您可以参考这些文章。

如此一来, CRUD各种参数的写法,您都会了。

[习题]ADO.NET #6 DataSet如何新增一笔纪录?(搭配参数InsertCommand + Parameter
http://www.dotblogs.com.tw/mis2000lab/archive/2008/12/15/ado.net_dataset_insertcommand_1215.aspx

[转贴][ADO.NET] DataSet / DataAdapter 参数(Parameters)的各种范例

http://www.dotblogs.com.tw/mis2000lab/archive/2011/03/24/dataadapter_parameter_20110324.aspx

关于 DataSet / DataAdapter的 UpdateCommand DeleteCommand参数」作法,

可以参考「上集」(ASP.NET 4.0 专题实务 / 松岗出版)第十章

转载于:https://www.cnblogs.com/mis2000lab/articles/DataAdapter_SelectCommand_Parameter.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值