我有一个简单的应用程序,它有richTextBox 和按钮。用户在richTextBox 中输入数字(整数)(每行一个数字)。
当他单击按钮时,我想生成一个 sql 查询。
基本上,如果我将整数传递给这样的查询,它就可以工作:
SELECT price from products where ID IN (1, 2, 3, 4)
这是用户在richTextBox 中输入1、2、3、4 作为行的时候。
但我想传递 binary(8) 而不是整数。
这是我原来的代码行:
cmdString += " IN (" + string.Join(", ", richTextBox1.Lines) + ") ";
我试图用 LINQ 来改变它,如下所示:
cmdString += " IN ("
+ string.Join(", ", richTextBox1.Lines.Select(c =>
{ c = "0x"+Convert.ToString(Convert.ToInt32(c), 16);
return c;
}).ToArray())
+ ") ";
我想得到什么:
例如转换:
1 to 0x0000000000000001
30 to 0x000000000000001E
我希望你明白这一点。
更新:
我已经这样做了:
textBox1.Text = string.Join(", ", richTextBox1.Lines.Select(c =>
{
c = "0x" + "0000000000000000".Substring(0, (16 - Convert.ToString(Convert.ToInt32(c), 16).Length)) + Convert.ToString(Convert.ToInt32(c), 16);
return c;
}).ToArray());
任何想法如何删除第二次Convert.ToString(Convert.ToInt32(c))
使用?或者也许以另一种方式做到这一点?