2014-02-27 51 views
2

新手要问 我想显示基于由用户输入的限制的数据,例如 :用户输入100的值,并且该数据将显示为100。SQL SELECT数据MySQL错误

限制值总是根据用户输入值 而改变,但存在问题您的SQL语法中有错误;检查对应于你的MySQL服务器版本使用附近的“” 100“”在1号线

请帮助正确的语法手册来解决这个问题.. 谢谢

  Public Function Tampil_Stock(ByVal limit_kar As String) As List(Of Class_stock) 
    Dim tmpBaca As New List(Of Class_stock) 
    Dim cmd As New MySqlCommand 
    Dim dreader As MySqlDataReader 
    Dim ds As New DataSet 
    Dim sql As String 
    Try 
     sql = "SELECT NoReg,status,status_kartu FROM tb_stock WHERE status= '0' and status_kartu= '0' ORDER BY NoReg ASC limit ?fn" 
     cmd = New MySqlCommand(sql, myconnection.open) 
     cmd.Parameters.Add(New MySqlParameter("?fn", MySqlDbType.String, 10)).Value = limit_kar 
     dreader = cmd.ExecuteReader 
     While dreader.Read 
      Dim objTemp As New Class_stock 
      objTemp.NoReg_ = dreader.Item("NoReg") 
      'objTemp.NoPin_ = dreader.Item("NoPin") 
      objTemp.status_ = dreader.Item("status") 
      objTemp.status_kartu_ = dreader.Item("status_kartu") 
      tmpBaca.Add(objTemp) 
     End While 

    Catch sqlex As MySqlException 
     Throw New Exception(sqlex.Message.ToString()) 
    End Try 
    myconnection.close() 
    Return tmpBaca 
    'dreader.Close() 
End Function 

在列表视图

 Sub Loadlist (Optional ByVal criteria As Integer = 0) 
    Dim objList As List (Of Class_stock) 
    As String Dim nourut 
    objList = stock.Tampil_Stock (criteria) 
    nourut = 1 
    Me.ListView1.Items.Clear() 
    For i As Integer = 0 To objList.Count - 1 
     nourut = ListView1.Items.Count + 1 
     Me.ListView1.Items.Add (nourut) 
     Me.ListView1.Items (i). SubItems.Add (objList.Item (i). NoReg_) 
    Next 

end Sub 
+0

你能粘贴错误日志,请 – MrMins

+0

什么是你的数据库引擎? –

+0

codemunkee已经改进了代码的写作,但为什么数据不能显示在列表视图中?这些数据在我们的表 – user2453977

回答

0

limit_kar插入数据应该是一个integer,您使用string。还将参数更改为integer而不是string

Public Function Tampil_Stock(ByVal limit_kar As Integer) As List(Of Class_stock) 
    Dim tmpBaca As New List(Of Class_stock) 
    Dim cmd As New MySqlCommand 
    Dim dreader As MySqlDataReader 
    Dim ds As New DataSet 
    Dim sql As String 
    Try 
     sql = "SELECT NoReg,status,status_kartu FROM tb_stock WHERE status= '0' and status_kartu= '0' ORDER BY NoReg ASC limit ?fn" 
     cmd = New MySqlCommand(sql, myconnection.open) 
     cmd.Parameters.Add(New MySqlParameter("?fn", MySqlDbType.Int)).Value = limit_kar 
     dreader = cmd.ExecuteReader 
     While dreader.Read 
      Dim objTemp As New Class_stock 
      objTemp.NoReg_ = dreader.Item("NoReg") 
      'objTemp.NoPin_ = dreader.Item("NoPin") 
      objTemp.status_ = dreader.Item("status") 
      objTemp.status_kartu_ = dreader.Item("status_kartu") 
      tmpBaca.Add(objTemp) 
     End While 

    Catch sqlex As MySqlException 
     Throw New Exception(sqlex.Message.ToString()) 
    End Try 
    myconnection.close() 
    Return tmpBaca 
    'dreader.Close() 
End Function 
+0

我使用mysql服务器 – user2453977

+0

帮助我,因为我刚刚学习vb.net的类,如何更正写入,以便它可以按预期运行sql syntaxt。 – user2453977

+0

我试过了,你给出的错误代码已经不存在了,但是没有数据出现在列表视图中。如果?fn更改(@fn),则附加以下listviewnya – user2453977