0
다음 코드를 적은 줄로 작성하는 방법이 있습니까? 간단한 쿼리를 실행하는 코드가 많은 것처럼 보입니다. VS2005를 사용할 때 LINQ가 없습니다. 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()
(다른 데이터 공급자에 대한
SqlClient
비슷하지만 가정) DbCommand.Parameters'. '추가'만 – CJ7그러면'SqlClient'는'SqlParameterCollection'의 메소드이므로 가정하지 마십시오. 어떤 데이터 제공 업체를 사용하고 있습니까? 또한 .NET 2에서도'OledbParameterCollection'에서 사용할 수 있습니다 : http://msdn.microsoft.com/en-US/library/system.data.oledb.oledbparametercollection.addwithvalue(v=vs.80).aspx –
코드는 잠재적으로'OleDBConnection' 또는'SQLConnection'을 처리하려고 시도하고 있으므로'DbCommand'를 사용합니다. – CJ7