как выполнить запрос на доступ с параметрами - PullRequest
2 голосов
/ 01 августа 2011

у меня есть этот код для обновления файлов даты и времени в доступе с использованием параметров

SQL = "update ConfTbl set D_from = @MyFrom , D_to = @MyTo where Code = " + Convert.ToInt32(TmpCode1) + "";
OleDbCommand Cmd = Conn.CreateCommand();
OleDbParameter dateparam1 = Cmd.Parameters.AddWithValue("@MyFrom", DbType.DateTime);
dateparam1.Value = dt_From.Value;
OleDbParameter dateparam2 = Cmd.Parameters.AddWithValue("@MyTo", DbType.DateTime);
dateparam2.Value = dt_To.Value;
Cmd.CommandText = SQL;
Cmd.ExecuteNonQuery();

как изменить это для запроса на запуск, который находит между двумя датами?

что-то вроде: select * from ConfTbl where Tdate >= #MyFrom# and Tdate <= #MyTo#

я пробую это:

SQL = @"select * from ReturnConfTbl where Tdate >= @MyFrom and Tdate <= @MyTo";
        OleDbCommand Cmd = Conn.CreateCommand();
        OleDbParameter dateparam1 = Cmd.Parameters.AddWithValue("@MyFrom", DbType.DateTime);
        dateparam1.Value = dt_from_A.Value;
        OleDbParameter dateparam2 = Cmd.Parameters.AddWithValue("@MyTo", DbType.DateTime);
        dateparam2.Value = dt_to_A.Value;
        Cmd.CommandText = SQL;
        Cmd.ExecuteNonQuery();
        adp = new OleDbDataAdapter(SQL, Conn);
        adp.Fill(dsView, "ReturnConfTbl");
        adp.Dispose();
        this.dataGridView3.DataSource = dsView.Tables[0].DefaultView;

и получил эту ошибку: Data type mismatch in criteria expression.

Ответы [ 2 ]

3 голосов
/ 01 августа 2011

Вы можете использовать ключевое слово BETWEEN.например,

SELECT *
FROM ConfTbl
WHERE 
    Tdate BETWEEN #MyFrom# AND #MyTo#
0 голосов
/ 01 августа 2011

просто взгляните на TSQL между утверждением .. http://msdn.microsoft.com/en-us/library/ms187922.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...