簡體   English   中英

如何將參數傳遞給LIMIT? 我可以將所有查詢輸出保存在一個字符串中嗎?

[英]How can i pass parameter to LIMIT ? Can i save all query output in one string?

我有2個問題,與以下問題有關:

1)。如何傳遞參數值來限制? 可能嗎 ?

我嘗試了這個:

log.CommandText = "SELECT * from log order by date desc limit ?param1";  

但它不起作用,因為參數的傳遞方式為:“ 2”。

解決了:

log.CommandText = String.Format("SELECT * from log order by date desc limit {0}, yourIntNumber) 

2)。 我可以將以上查詢的輸出保存在C#中的一個變量中嗎? 我嘗試過類似的方法..但是日志並不包含所有內容。

                while (Reader.Read())
                {
                    for (int i = 0; i < Convert.ToInt16(lognr); i++)
                    {

                        logs = logs + (Reader.GetValue(i).ToString());  
                    }

                }

對於您的第一個問題:

您可以使用Top關鍵字,例如:-對於MSSQL(Microsoft SQL)

Select TOP 3 * From Table_name

對於MYSQL

Select * From Table_name LIMIT 3

上面將返回前3行。

關於第二個問題,

while (Reader.Read())
 {
      for (int i = 0; i < Convert.ToInt16(lognr); i++)
       {

        logs = logs + (Reader.GetValue(i).ToString());  
        }

   }
}

這段代碼正在檢查條件Convert.ToInt16(lognr),這就是為什么它不返回所有內容的原因。

希望以上信息對您有幫助:)

1)。如何傳遞參數值來限制? 可能嗎 ?

我嘗試了這個:

log.CommandText = "SELECT * from log order by date desc limit ?param1";  

但它不起作用,因為參數的傳遞方式為:“ 2”。

解決了:

log.CommandText = String.Format("SELECT * from log order by date desc limit {0}, yourIntNumber)

2)。 我可以將以上查詢的輸出保存在C#中的一個變量中嗎? 我嘗試過類似的方法..但是日志並不包含所有內容。

        while (Reader.Read())
        {
            for (int i = 0; i < Convert.ToInt16(lognr); i++)
            {

                logs = logs + (Reader.GetValue(i).ToString());  
            }

        }

解決了:

log.CommandText = String.Format("SELECT * from log order by date desc limit {0}", lognr);  //the output has 3 columns and several rows.
Reader = log.ExecuteReader();
int i = 0;
while (Reader.Read())
{
logs = logs + "\r\n" + Reader.GetValue(0).ToString() + " " + Reader.GetValue(1).ToString() + " "+ " " + Reader.GetValue(2).ToString();
i++;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM