#c# #asp.net
#c# #asp.net
Вопрос:
Я хочу получить данные из MS Access и назначить их элементу управления повторителем. Я использовал следующий код, и он работает хорошо:
OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=D:\Joshua_WEB_be.mdb; Persist Security Info=False;");
protected void Page_Load(object sender, EventArgs e)
{
con.Open();
OleDbCommand myComd = new OleDbCommand("SELECT * FROM tblEvents", con);
OleDbDataAdapter da = new OleDbDataAdapter(myComd);
DataSet ds = new DataSet();
da.Fill(ds);
Repeater1.DataSource = ds;
Repeater1.DataBind();
con.Close();
}
но я хочу отобразить день и месяц из поля Start_Date, поэтому я использовал запрос:
OleDbCommand myComd = new OleDbCommand("SELECT [RIGHT('0' CAST(DAY(Start_Date()) AS varchar(2)), 2) 'Day'],[MONTH(Start_Date()) 'Month'], [Event_Title], [Event_Time] FROM tblEvents", con);
Но он показывает ошибку.
Комментарии:
1. Если я хорошо помню, ПРАВИЛЬНО, ДЕНЬ, МЕСЯЦ являются функциями VBA и недоступны при использовании OleDb
2. тогда как это сделать для oledb, есть какие-нибудь идеи
3. Не уверен, что вы могли бы обойти это ограничение, но вы могли бы попытаться создать запрос в своей базе данных access, а затем вызвать его из oledb, передав параметры и определив CommantType как StoredProcedure .
4. Вы не говорите нам, о чем говорит ошибка? Нам нужно увидеть ошибку. Кроме того, ваш оператор SQL имеет неправильный синтаксис. Я предлагаю вам посмотреть, чтобы получить правильный SQL.
5. Проверьте DATEPART для замены ДНЯ, МЕСЯЦА