我有一个简单的应用程序,它具有的RichTextBox和按钮。 用户将数字(整数)输入到richTextBox(每行一个数字)。转换列表中的SQL二进制(8)名单
当他点击我要生成一个SQL查询的按钮。
基本上它的工作原理如果我通过整数到查询这样的:
SELECT price from products where ID IN (1, 2, 3, 4)
这是用户输入如1,2,3,4 RichTextBox中线路时。
但我想传递的二进制(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))
使用?或者也许以另一种方式做?
“原始代码行”也适用于SQL注入 – 2012-04-13 10:16:28
如果我在MS SQL Server中做了简单的选择2005年领先0我得到我的结果,但没有他们没有:/ – Misiu 2012-04-13 10:19:04