0
有沒有辦法在較少的行寫下面的代碼?這似乎有很多代碼來執行這樣一個簡單的查詢。沒有LINQ,因爲我正在使用VS2005。在VB或C#中的答案是可以接受的。更簡單的方法將參數化查詢發送到數據庫?
Using cmd As DbCommand = oDB.CreateCommand()
cmd.CommandText = "SELECT * FROM [Table1] WHERE [Date] BETWEEN @Date1 AND @Date2"
cmd.CommandTimeout = 30
cmd.CommandType = CommandType.Text
cmd.Connection = oDB
Dim param As DbParameter
param = cmd.CreateParameter()
param.Direction = ParameterDirection.Input
param.DbType = DbType.Date
param.ParameterName = "@Date1"
param.Value = Now().Date
cmd.Parameters.Add(param)
param = cmd.CreateParameter()
param.Direction = ParameterDirection.Input
param.DbType = DbType.Date
param.ParameterName = "@Date2"
param.Value = Now().Date.AddDays(intDaysAhead)
cmd.Parameters.Add(param)
End Using
Dim reader As DbDataReader = cmd.ExecuteReader()
我沒有得到'AddWithValue'作爲'可用的方法DbCommand.Parameters'。只有「添加」。 – CJ7
然後你不使用'SqlClient',因爲它是'SqlParameterCollection'的一個方法。你在使用什麼數據提供者?即使在.NET 2中也可以在'OledbParameterCollection'中使用:http://msdn.microsoft.com/zh-CN/library/system.data.oledb.oledbparametercollection.addwithvalue(v=vs.80).aspx –
The代碼正在嘗試迎合'OleDBConnection'或'SQLConnection',因此使用'DbCommand'。 – CJ7