[英]How to pass parameter to Dataset for query using c#
我想更改DataSet中的SQL語句以添加查詢
where LogTime between @parameter1 and @parameter2
如何將參數DateStr
和DateEnd
給@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.