【发布时间】:2016-05-01 09:33:46
【问题描述】:
我正在尝试创建一个查询。这是代码
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 不应该消失?
【问题讨论】:
-
你能告诉你传递给 CodeTextBox 和 CountTextBox 的内容吗?编辑:早上太早了。现在我明白了...
-
关于前导0;整数 0001 等同于 0000001 等同于 1。
-
无法理解您的问题?它是 SqlCommand 的查询字符串吗?您的实际问题是什么(异常或意外结果)?您的查询参数在哪里(添加更多创建完整查询字符串的代码)?
-
@etalon11,我分别在文本框中传递
0000000087和5 -
@HarshitShrivastava 尝试关注。
var whereQueryFormat = "Whre columnName IN ({0})"; var wherequery = string.Join(",", Enumerable.Range(1, count).Select(i => "'" + fromcode + i + "'")); wherequery = string.Format(whereQueryFormat, wherequery);