一個關於在mysql數據表中如何查找前幾條數據的問題


我想顯示一個數據表中的前20條記錄,
為什么這樣的寫法會出錯,該如何更正?
代碼如下:
OdbcConnection conn=new OdbcConnection(sys.strConnection());
conn.Open();
string str="select  top 15 * from list ";
DataSet ds=new DataSet();
OdbcDataAdapter oda=new OdbcDataAdapter(str,conn);
oda.Fill(ds,"rs");
this.DataGrid1.DataSource=ds.Tables["rs"];
this.DataGrid1.DataBind();
conn.Close();
錯誤信息如下:
Server Error in '/qycx1' Application.
--------------------------------------------------------------------------------

ERROR [42000] [MySQL][ODBC 3.51 Driver][mysqld-3.23.52]
You have an error in your SQL syntax near '15 * from list ' at line 1 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: Microsoft.Data.Odbc.OdbcException: ERROR [42000] [MySQL][ODBC 3.51 Driver][mysqld-3.23.52]
You have an error in your SQL syntax near '15 * from list ' at line 1

Source Error: 
Line 74:  DataSet ds=new DataSet();
Line 75:  OdbcDataAdapter oda=new OdbcDataAdapter(str,conn);
Line 76:  oda.Fill(ds,"rs");
Line 77:  this.DataGrid1.DataSource=ds.Tables["rs"];
Line 78:  this.DataGrid1.DataBind();
 
Source File: c:\inetpub\wwwroot\qycx1\qylb.aspx.cs    Line: 76 

Stack Trace: 

[OdbcException: ERROR [42000] [MySQL][ODBC 3.51 Driver][mysqld-3.23.52]You have an error in your SQL syntax near '15 * from list ' at line 1]
   Microsoft.Data.Odbc.OdbcConnection.HandleError(IntPtr hHandle, SQL_HANDLE hType, RETCODE retcode)
   Microsoft.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method)
   Microsoft.Data.Odbc.OdbcCommand.ExecuteReader(CommandBehavior behavior)
   Microsoft.Data.Odbc.OdbcCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)
   qycx.qylb.banding() in c:\inetpub\wwwroot\qycx1\qylb.aspx.cs:76
   qycx.qylb.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\qycx1\qylb.aspx.cs:31
   System.Web.UI.Control.OnLoad(EventArgs e) +67
   System.Web.UI.Control.LoadRecursive() +35
   System.Web.UI.Page.ProcessRequestMain() +731

 

9 个解决方案

#1


up

#2


string str="select  top 15 * from list "; 
  MySQL 中好像沒有這樣的語法 可以改成select * from list limit 1,15 試試.

#3


MySQL不支持top
應該用SELECT * FROM list ORDER BY ID LIMIT 1, 20

#4


不是啊,在 sqlserver 中,是有 
SELECT TOP 10 * FROM [dbo].[tablename] 的啊

#5


老大 不是所有數據庫都支持這個操作的

#6


難道那個告訴你sqlserver能使用的SQL語句MySql就一定能用

#7


哦?sqlserver 和 mysql 不一樣啊?

#8


select top 20 * from yourtable 

mysql和sqlserver很多語句都可以通用,但是也有地方不能的
你看看那個mysql的手冊有寫的

#9


哦,不好意思,剛測試select top 20 * from yourtable這個mysql不行
用這個吧
SELECT * FROM user LIMIT 1,3

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com