none
手動寫SqlDataSource,一定要用SqlDataSource1.DataSourceMode 嗎? RRS feed

  • 問題

  • 您好:

    請問

    手動寫SqlDataSource,一定要用SqlDataSource1.DataSourceMode 嗎?


    以下範例中 一定要設?

     SqlDataSource1.DataSourceMode = SqlDataSourceMode.DataSet

    一定要用
    Dim args As New DataSourceSelectArguments  嗎? 用意為何?
    Dim dv As Data.DataView = SqlDataSource1.Select(args)

    Select(DataSourceSelectArguments.Empty) 是沒有參數才用嗎?

    有參數要設定?

    謝謝'!


        Dim SqlDataSource1 As New SqlDataSource
            SqlDataSource1.ConnectionString = WebConfigurationManager.ConnectionStrings("testConnectionString").ConnectionString
    
            SqlDataSource1.SelectParameters.Add("id", TextBox1.Text)  '--取得資料
            'SqlDataSource1.SelectParameters("id").DefaultValue = 2
            SqlDataSource1.SelectCommand = "SELECT [id], [test_time], [title], [summary], [article], [author] FROM [test] WHERE ([id] = @id)"
    
            SqlDataSource1.DataSourceMode = SqlDataSourceMode.DataSet
     
            Dim dv As DataView
            dv = CType(SqlDataSource1.Select(DataSourceSelectArguments.Empty), DataView)  '
     
    
     
            GridView1.DataSource = dv
            GridView1.DataBind()
    


    2016年6月5日 上午 02:48

解答

  • DataSourceMode 預設值是 DataSet,不變的話可不用設。

    https://msdn.microsoft.com/zh-tw/library/system.web.ui.webcontrols.sqldatasource.datasourcemode

    DataSourceSelectArguments 有下列值可用,多半會用 Empty:

    https://msdn.microsoft.com/zh-tw/library/system.web.ui.datasourceselectarguments(v=vs.110).aspx

    但對 SQL 的參數,要在 OnSelecting 事件處理常式才能給予。

    https://msdn.microsoft.com/zh-tw/library/system.web.ui.webcontrols.sqldatasource.selecting(v=vs.110).aspx


    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2016年6月5日 上午 02:58
    版主