我有一個簡單的應用程序,它具有的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