2011-07-17 26 views
0

我正在使用.xsd數據集可視化工具來幫助我構建SQL DAL。不幸的是,我要連接的服務器是SQL Server 2000.因此,從VS 2010開始,我唯一的提供者是OLE DB提供者。這有一些缺點。例如。 ?而不是命名參數等SQL OleDb提供程序字符串參數 - 它是如何工作的?

我有查詢文本部分的一個問題。在設計師的查詢看起來是這樣的:

SELECT * FROM table WHERE nvarcharcolumn1 LIKE '%' + ? + '%' 

這從設計師的工作得很好,當我爲這個?作爲%插入值。 %不起作用,''也不起作用。

但之後我用XSD「預覽數據」,它不與任何這些值的工作。而從C#代碼調用時也不起作用。

如何正確使用字符串參數,當我想要過濾部分字符串並最終允許省略此參數時(一種可能性是爲每個非必需參數的組合創建查詢,但它的冗餘代碼太多IMO)。

回答

0
SELECT * FROM table WHERE nvarcharcolumn1 LIKE '%<part of a string you want to search>%' 
+0

您的查詢就會讓你開闊的SQL注入 – DRapp

0

你有字符串設置的方式將打開你的SQL注入。你真的應該使用參數類似

OleDbCommand cmd = new OleDbCommand("SELECT * FROM table WHERE nvarcharcolumn1 LIKE ?", yourConnection); 
cmd.Parameters.AddWithValue("QmarkPlaceHolder", "%" + ValueLookingFor + "%"); 

然後繼續你的查詢執行

相關問題