none
SqlDataAdapter 的 Fill 的問題 RRS feed

  • 問題

  • Import 如下:

    Imports System.Data
    Imports System.Data.SqlClient
    Imports System.Web.Configuration

    程式碼如下:

    Dim connString As String = WebConfigurationManager.ConnectionStrings("diarySqlServer").ConnectionString()
            Dim con As New SqlConnection(connString)
     
            Dim sqlStr As String
            sqlStr = "select * from Diary"

            Dim ad As SqlDataAdapter
            ad = New SqlDataAdapter(sqlStr, con)

            Dim ds As New dataSet

            ad.Fill(ds, "Diary")


    '---------------------------------------------------
    為何最後一行出現錯誤-->  錯誤 BC30518: 多載解析失敗,因為具備這些引數的 'Fill' 不存在,故無法呼叫:



    2009年8月2日 上午 07:38

解答

  • 你的 "dataSet" 型別確實是 System.Data.DataSet 嗎?
    如果是的話應該不會有錯誤。
    小人物一枚。
    • 已標示為解答 HsinTzu 2009年8月2日 下午 02:52
    2009年8月2日 下午 01:08
    版主

所有回覆

  • 你的 "dataSet" 型別確實是 System.Data.DataSet 嗎?
    如果是的話應該不會有錯誤。
    小人物一枚。
    • 已標示為解答 HsinTzu 2009年8月2日 下午 02:52
    2009年8月2日 下午 01:08
    版主
  • 1) 改成  Dim ds As System.Data.DataSet   就沒問題了

    2) 我知道一定要是 System.Data.DataSet  , 但為何下面的這種方式會出錯?? 
                          Dim ds As New dataSet
                          ad.Fill(ds, "Diary")

         因為我看書上是這樣寫的,但我不明白錯在哪裡?


    • 已編輯 HsinTzu 2009年8月2日 下午 02:53
    2009年8月2日 下午 02:51
  • 你看的那本書可以丟了。

    寫程式的時候命名的大小寫是有差異的(就算沒有也要養成這習慣),因為你不知道是不是哪裡多定義了一個 "dataSet" 類別。
    如果作者連這點都不關心的話,那本書不要也罷...
    小人物一枚。
    2009年8月2日 下午 04:10
    版主
  • 請問你寫Dim ds As New dataSet的時候建置專案會過嗎?或是dataSet這個字上面有出現紅色毛毛蟲嗎?
    有的書會省略CLASS所在的命名空間或是應該匯入的組建,通常會造成讀者依照書上的CODE輸入進去
    卻會無法執行的問題,所以建議KEY完程式碼之後,看一下如果是類別在VS裡面應該會出現是淺藍色的字
    ,如果無法辨別會出現是黑色,提供簡單的小技巧功能參考。
    2009年8月3日 上午 01:52