簡體   English   中英

如何使用C#將參數傳遞給數據集以進行查詢

[英]How to pass parameter to Dataset for query using c#

我想更改DataSet中的SQL語句以添加查詢

where LogTime between @parameter1 and @parameter2

如何將參數DateStrDateEnd@parameter1@parameter2

從C#方法

DataSet1 ds = new DataSet1();         

我猜我們應該從DataSet1使用DataTable1TableAdapter

有什么建議的實現方式嗎?

我們已經在DataTable1TableAdapter獲得了這些查詢

SELECT IPassLog.ParkID, ParkInfo.ParkName, IPassLog.UserID, IPassLog.LogTime, IPassLog.LogInTime, IPassLog.InitBalance,
                IPassLog.TranAmount, IPassLog.TranBalance, IPassLog.CheckDone, IPassLog.TranSN, IPassLog.PackName, IPassLog.ResultName, IPassLog.SettlementDate,
                IPass_Result_Hex.Result_Desc, IPass_ErrorCode.Explanation
                FROM IPassLog INNER JOIN ParkInfo ON IPassLog.ParkID = ParkInfo.ParkID
                FULL JOIN IPass_Result_Hex ON IPassLog.VerifyResult = IPass_Result_Hex.Result_Hex FULL JOIN IPass_ErrorCode ON IPassLog.VerifyFlag = IPass_ErrorCode.Code;

我想在這些查詢中添加where語句

您可以利用SqlDataAdapter類的構造函數,該構造函數接受SqlCommand作為參數。 這樣您就可以將參數化的命令傳遞給此類以創建SqlDataAdapter的實例,我更喜歡像這樣使用:

string connectionString = "your connection string here";
string query = "select blah, foo from mytable where LogTime >= @parameter1 and LogTime<= @parameter2";
DataSet ds = new DataSet();
using (SqlCommand cmd = new SqlCommand(query, new SqlConnection(connectionString)))
{
    cmd.Parameters.Add("parameter1", SqlDbType.DateTime).Value = dateInput1;
    cmd.Parameters.Add("parameter2", SqlDbType.DateTime).Value = dateInput2;
    using (SqlDataAdapter adapter = new SqlDataAdapter(cmd)) {
        adapter.Fill(ds);
    }
}

遵循文章: 教程1:創建數據訪問層 ,該討論如何處理表適配器查詢中的參數。 它還提供了相同的代碼示例。


如果您可以將參數傳遞給查詢,則可以像這樣創建參數

  SqlParameter param= new SqlParameter();
   param.ParameterName = "@parameter1";// Defining Name
   param.SqlDbType = SqlDbType.Int; // Defining DataType
   param.Direction = ParameterDirection.Input; // Setting the direction 
   param.Value = inputvalue;

並將創建的參數添加到您的命令對象

 // Adding Parameter instances to sqlcommand
   comm.Parameters.Add(param);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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