簡體   English   中英

在執行SQL查詢時如何忽略參數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM