0

我有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());  
                    }

                }
4

2 回答 2

0

对于您的第一个问题:-

您可以使用 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) ,这就是它没有返回所有内容的原因。

希望以上信息对您有所帮助:)

于 2012-07-04T17:32:00.513 回答
0

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++;
}
于 2012-07-04T18:49:02.177 回答