我正在尝试创建一个查询。这是代码

string wherequery = "";
int fromcode = Convert.ToInt32(CodeTextBox.Text);
int count = Convert.ToInt32(CountTextBox.Text);

for (int i = 0; i < count; i++)
    wherequery += ("'" + (fromcode + i).ToString().PadLeft(8,'0') + "',");
wherequery = wherequery.TrimEnd(",");

我正在使用 for 循环来创建 IN 查询。可以通过 LINQ 吗?

输出应该是
'0000000087','0000000088','0000000089'

第二件事,我从像 0000000087 这样的文本框值中获取代码。当我使用 Convert.ToInt32 将其转换为 int 时,前面的 0 消失了。

是否有可能 0 不应该消失,因为前面的 0 的数量可能会有所不同?

最佳答案

不需要 .PadLeft(8,'0') 会导致不必要的前导零。
尝试跟随。

var whereQueryFormat = "Whre columnName IN ({0})";
var wherequery = string.Join
(",",
  Enumerable.Range(1, count)
  .Select(i => "'" + fromcode + i + "'")
);
wherequery = string.Format(whereQueryFormat, wherequery);

关于c# - C#中的增量计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34986435/

10-10 21:55