2015-10-17 33 views
-1

我想顯示列表視圖中的行數。我試過這段代碼,但不是工作,它會拋出下面的錯誤。我使用MySQL的後端:顯示從列表視圖中的數據表中找到的行數

錯誤:

System.InvalidCastException: Conversion from string " '" to type 'Double' is not valid. ---> System.FormatException: Input string was not in a correct format

VB代碼:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
     Try 
      ViewState("Data") = "" 
      Using con As New MySqlConnection(constr) 
       Using cmd As New MySqlCommand("SELECT * FROM school") 
        Using sda As New MySqlDataAdapter() 
         cmd.Connection = con 
         sda.SelectCommand = cmd 
         cmd.CommandTimeout = 0 
         Using dt As New DataTable() 
          sda.Fill(dt) 
          ViewState("Data") = dt 
          schoollists.DataSource = dt 
          schoollists.DataBind() 

         End Using 
        End Using 
       End Using 
      End Using 

      countResult.Text = (" '" + schoollists.Items.Count + "';") 

     Catch ex As Exception 
      Response.Write(ex) 
     End Try 
    End Sub 
+0

備註部分在VB.NET不使用加號來連接字符串的數字。使用正確的操作符& – Steve

+0

@Steve請詳細說明。我不明白..謝謝.. –

回答

0

在VB.NET使用+ Operator來連接字符串和數量產生意想不到的結果(或者更好的例外,如你所見)

在字符串和數字之間使用+導致試圖將字符串" '"(在你的情況下)爲一個數字,當然,這會失敗。

爲了安全起見,正確的運算符來連接在VB.NET字符串是& operator

countResult.Text = (" '" & schoollists.Items.Count & "';") 

作爲一個側面說明,這不會發生,因爲你必須在你的項目設置,選項STRICT設置爲OFF。通過這種配置,編譯器無法捕捉到這個問題,直到在運行時點擊它才能看到錯誤。我強烈建議將OPTION STRICT設置爲ON,如果最初您需要修改很多代碼。

與數字和字符串使用時,加上運營商的行爲的詳細解釋是存在的+ Operator on MSDN

相關問題