2013-08-28 90 views
0

這是我選擇的最大JO_NO代碼:選擇MAX值誤差

strQ = "SELECT MAX(JO_NO) + 1 from js_hdr" 

    cmd = New MySqlCommand(strQ, con) 
    Try 
     con.Open() 
     rs = cmd.ExecuteReader 
     While rs.Read 

      txtJO.Text = IIf(Not IsDBNull(rs.Item("JO_NO")), rs.Item("JO_NO"), 0) 

     End While 
     rs.Close() 

    Catch ex As Exception 
     MsgBox(ex.Message) 
    Finally 
     con.Close() 
    End Try 

此代碼中的錯誤是:無法在結果中找到指定的列:JO_NO

我已經檢查了我表中有JO_NO列。

任何幫助將不勝感激。

回答

1

您還沒有爲計算列設置任何別名,這就是爲什麼它找不到列。

strQ = "SELECT MAX(JO_NO) + 1 AS JO_NO from js_hdr" 
如果你想使用的查詢,如果沒有記錄但將值設置爲零

,您可以使用COALESCE

strQ = "SELECT COALESCE(MAX(JO_NO), 0) + 1 AS JO_NO from js_hdr" 
// other codes 
txtJO.Text = rs.Item("JO_NO") 
+0

啊好吧,我只是忘了別名,謝謝, – Matthew