#sql #oledb #datepart
#sql #oledb #datepart
Вопрос:
Я пытаюсь получить дату, месяц и год отдельно от столбца даты в базе данных Access.
Я использую для этого следующий код.
Я не знаю, в чем проблема, но либо она показывает мне ошибку, либо данные не возвращаются.
Я новичок в OLEDB, поэтому я не знаю, возможно ли это или нет.
Пожалуйста, помогите.
И, пожалуйста, покажите мне альтернативы, если этот способ неверен.
conn_string = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:UsersMHVDocumentsVisual Studio 2012ProjectsUTSUTS.mdb"
conn = New OleDbConnection(conn_string)
conn.Open()
Grid_string = "SELECT datepart(mm,T_Date) from Transactions"
Grid_cmd = New OleDbCommand(Grid_string, conn)
RW_AD = New OleDbDataAdapter(Grid_cmd)
Grid_DS = New DataSet
Grid_cmd.Connection = conn
Grid_cmd.CommandText = Grid_string
RW_AD.Fill(Grid_DS, "Transactions")
Grid_cmd.ExecuteNonQuery()
DataGridView1.DataSource = Grid_DS.Tables("Transactions").DefaultView
PS: Подключение и другие вещи работают нормально.
Он показывает мне ошибку только при использовании datepart().
Комментарии:
1. Ошибка, которую я продолжаю получать, такова. -> Для одного или нескольких обязательных параметров не задано значение.
Ответ №1:
Не могли бы вы попробовать указать интервал datepart в кавычках?
Grid_string = "SELECT datepart("mm",T_Date) from Transactions"
Ответ №2:
Использование '
вместо "
решит проблему:
Grid_string = "SELECT datepart('mm',T_Date) from Transactions"
Ответ №3:
Попробуйте использовать m
вместо mm
Grid_string = "SELECT datepart('m',T_Date) from Transactions"
Ответ №4:
Возвращаемый тип данных — Int16. Приведите к Int16 или вы получите ошибку