[英]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.