[英]How to ignore parameters while executing a SQL query?
以下是我的SQL查詢:
select *
from Table
where col1 = @param1 and col2 = @param2
現在,我想執行該SQL查詢,但是我只是想從查詢中獲取列,而不是任何記錄。
我知道我可以通過查找和刪除所有參數化的參數來操縱此SQL查詢,但是我只是想知道有什么方法可以忽略所有這些參數而只是執行( select * from Table
)。
這就是我現在正在做的事情:
TCommand cmd = new TCommand();
cmd.CommandText = sqlQuery;
cmd.Connection = connection;
using (var reader = cmd.ExecuteReader())
{
reader.Read();
var columns = reader.GetSchemaTable().AsEnumerable()
.Select(col => col["ColumnName"].ToString())
.ToArray();
return columns;
}
我收到此錯誤:
必須聲明標量變量“ @ param1”
我想在執行SQL查詢時忽略此參數。 有沒有辦法告訴ADO.NET忽略我的查詢參數而只執行查詢?
不,您不能忽略查詢參數。 如果需要使用上面的查詢來獲取列名,則應自己操作sql。 例如,您可以忽略任何條件,例如;
string sqlQuery="select * from Table where col1 = @param1 and col2 = @param2";
var newQuery = a.Substring(0, a.IndexOf("where"));
TCommand cmd = new TCommand();
cmd.CommandText = newQuery;
cmd.Connection = connection;
using (var reader = cmd.ExecuteReader())
{
reader.Read();
var columns = reader.GetSchemaTable().AsEnumerable()
.Select(col => col["ColumnName"].ToString())
.ToArray();
return columns;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.