Поиск значения в таблице MS Access в c # - PullRequest
0 голосов
/ 25 января 2012

Я пытаюсь помочь другу в его проекте, однако он требует некоторого использования MS Access, о котором я не знаком. Задача под рукой следующая:

У нас есть таблица, которая состоит из 3 строк. Первая строка в формате даты. Второй и третий столбцы Да / Нет. Я пытаюсь вернуть значение второй строки заданной даты. И я написал код ниже, чтобы сделать это.

       string QueryDate= monthCalendar1.SelectionRange.Start.ToString();
       QueryDate= QueryDate.Substring(0, 10);

       OleDbConnection conn = new
       OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;DataSource=data.mdb");
       if (conn.State != ConnectionState.Open) conn.Open();
       string query = "Select Rezerve from 101 Where Tarih=\"QueryDate\"";
       OleDbDataAdapter adtr = new OleDbDataAdapter(query, conn);
       DataTable dt = new DataTable();
       adtr.Fill(dt);

Тем не менее, он вряд ли справится с поставленной задачей. Я нашел несколько шаблонов кода для отображения соответствующих значений в визуальном интерфейсе. Но я не могу найти способ вернуть значение второй строки, 'Rezerve', переменной, чтобы использовать ее позже. Как я могу это сделать? Кстати, есть три случая; во-первых, на данную дату может не быть записи. Во-вторых, второй ряд может быть «да», а третий, конечно, может быть «нет». Мне придется вызывать разные функции для каждого из этих случаев.

Заранее спасибо.

1 Ответ

1 голос
/ 25 января 2012

Это всего лишь приблизительное представление о том, что вы могли бы сделать, я делал это раньше.

string QueryDate = monthCalendar1.SelectionRange.Start.ToString();
QueryDate = QueryDate.Substring(0, 10);

string connstr = "Provider=Microsoft.Jet.Oledb.4.0;DataSource=data.mdb";
string query = "Select Rezerve from 101 Where Tarih=@QueryDate";

using (OleDbConnection dc = new OleDbConnection(connstr))
{
    OleDbCommand sqlcmd = new OleDbCommand(query, conn);
    sqlcmd.Parameters.AddWithValue("@QueryDate", QueryDate);
    bool Rezerve = (bool)sqlcmd.ExecuteScalar();
}

switch (Rezerve) 
{ 
    Case true: 
        //true stuff 
        break; 
    Case false: 
        //false stuff 
        Break; 
    Default: 
        //No Return 
        Break; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...