Более простой способ отправки параметризованного запроса в базу данных?
Есть ли способ написать следующий код в меньшем количестве строк? Похоже, много кода для выполнения такого простого запроса. Нет 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()
1 ответ
Это, вероятно, наименьшее количество строк, которые вы можете получить:
Using con = New SqlConnection("Connectionstring")
Using cmd = New SqlCommand("SELECT * FROM [Table1] WHERE [Date] BETWEEN @Date1 AND @Date2", con)
cmd.CommandTimeout = 30
cmd.Parameters.AddWithValue("@Date1", Date.Today)
cmd.Parameters.AddWithValue("@Date2", Date.Today.AddDays(intDaysAhead))
con.Open()
Using reader = cmd.ExecuteReader()
End Using
End Using
End Using
(при условии, SqlClient
но аналогично для других поставщиков данных)