none
Изменение запроса с dateTimePicker RRS feed

  • Общие обсуждения

  • Не могу понять в чем проблема. При изменении dateTimePicker таблица не меняется. Может нужно получить дату dateTimePicker.Text, а потом конвертировать. Если так, то как сконвертировать?

    public partial class School : Form
      {
        DataBaseConnect dbs = new DataBaseConnect();
        DateTime DateNow;
        string DateCondition = " WHERE students.exam = @DateNow";
     
        public School()
        {
          InitializeComponent();      
          DateNow = dateTimePicker1.Value.Date;
          dbs.ExamGrid(DateNow, DateCondition);
          dataGridView1.DataSource = dbs.dataSet.Tables["Exam"];
        }
     
        // Перезаполнение dataGridViewExam
        private void DataExam()
        {
          dbs.dataSet.Tables["Exam"].Clear();
          DateNow = dateTimePicker1.Value.Date;
          MessageBox.Show(DateNow.ToString());
          dbs.ExamGrid(DateNow, DateCondition);
          dataGridView1.DataSource = dbs.dataSet.Tables["Exam"];
          
        }
     
        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
          if (checkBox1.Checked)
          {
            dateTimePicker1.Enabled = false;
            DateCondition = "";
            DataExam();
     
          }
          else
          {
            dateTimePicker1.Enabled = true;
            DateCondition = " WHERE students.exam = @DateNow";
            DataExam();
          }
        }
     
        private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
        {
          DataExam();
        }
     
        private void ExitToolStripMenuButton_Click(object sender, EventArgs e)
        {
          Application.Exit();
        }
      }
    
    class DataBaseConnect
      {
        string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Users\\Жоржик\\Desktop\\School\\School.mdb";
        OleDbConnection connect = new OleDbConnection();
        public OleDbCommand command = new OleDbCommand();
        public OleDbDataAdapter adapter = new OleDbDataAdapter();
        public DataSet dataSet = new DataSet();
        
        /// <summary>
        /// Подключение к базе данных
        /// </summary>
        /// <param name="commandText">SQL запрос</param>
        public void Connect(string commandText)
        {
          try
          {
            connect.ConnectionString = connectionString;
            command.CommandText = commandText;
            command.Connection = connect;
            connect.Open();
            adapter.SelectCommand = command;
          }
          catch
          {
            MessageBox.Show("Нет соединения с базой данных. Обратитесь к системному администратору");
          }
          finally
          {
            connect.Close();
          }
        }
     
        /// <summary>
        /// Заполнение DataSet таблицей Exam
        /// </summary>
        public void ExamGrid(DateTime DateNow, string condition)
        {
          string commandTextExam = "SELECT students.exam AS Экзамен, students.name_s AS Курсант, students.autodrome AS Автодром, students.city AS Город, " +
                       "[students]![autodrome]+[students]![city] AS Общее, teacher.name_t AS Инструктор " +
                       "FROM teacher INNER JOIN students ON teacher.id_t = students.id_t" + condition;
          if (condition != "")
          {
            command.Parameters.Add("@DateNow", OleDbType.Date).Value = DateNow;
          }
          Connect(commandTextExam);
          adapter.Fill(dataSet, "Exam");
        }
      }
    

    8 марта 2011 г. 22:05

Все ответы

  • Уважаемый пользователь!

    В вашей теме отсутствует активность в течение последних 5 дней. При отсутствии каких-либо действий в течение 2 последующих дней, тема будет переведена в разряд обсуждений. Вы можете возобновить дискуссию, просто оставив сообщение в данной теме


    Для связи [mail]
    14 марта 2011 г. 6:35