Atul Rokade Ответов: 1

Практическое руководство показывают пустой при выборе значения элемента управления datetimepicker


Всем привет,

Когда я выбираю дату и современные из datetimepicker, чтобы отобразить данные в элементе управления datagridview на тот момент элемента управления datagridview показать мне значение null, данные , код пишется нажмите кнопку Да

Что я уже пробовал:

 DateTime startT = new DateTime();
                DateTime endT = new DateTime();
                startT = dateTimePicker1.Value.Date;
                endT = dateTimePicker2.Value.Date;
                if (startT.Date > endT.Date)
                {
                    MessageBox.Show("To Date Cannot be greater than Start Date");
                }
                else
                {
                    string connetionString = null;
                    connetionString = ConfigurationManager.ConnectionStrings["AccessConnectionString"].ConnectionString;
                    con.ConnectionString = connetionString;

                    DataSet ds = new DataSet();
                    string sql = "SELECT Medicine_name,sum(Medicine_count) as Medicine_count,To_Date from Medicine_count where [To_Date] Between #" + startT.ToString("dd'/'MM'/'yyyy") + "#And #" + endT.ToString("dd'/'MM'/'yyyy") + "#group by Medicine_name,Medicine_count,To_Date";
                    OleDbConnection connection = new OleDbConnection(connetionString);
                    OleDbDataAdapter dataadapter = new OleDbDataAdapter(sql, connection);
                    ds = new DataSet();
                    connection.Open();
                    dataadapter.Fill(ds);
                    connection.Close();
                    dataGridView1.DataSource = ds;
                    temp = true;
}

1 Ответов

Рейтинг:
2

OriginalGriff

Перестань это делать... Никогда не объединяйте строки для построения SQL-команды. Это оставляет вас широко открытыми для случайной или преднамеренной атаки SQL-инъекции, которая может уничтожить всю вашу базу данных. Вместо этого используйте параметризованные запросы.
Скорее всего, ваша проблема исчезнет в то же самое время.

string sql = "SELECT Medicine_name, SUM(Medicine_count) AS Medicine_count, To_Date FROM Medicine_count WHERE [To_Date] BETWEEN ? AND ? GROUP BY Medicine_name,Medicine_count,To_Date";
OleDbConnection connection = new OleDbConnection(connetionString);
OleDbDataAdapter dataadapter = new OleDbDataAdapter(sql, connection);
dataadapter.SelectCommand.Parameters.AddWithValue("?", startT);
dataadapter.SelectCommand.Parameters.AddWithValue("?", endT);


И есть вероятность, что SELECT не будет делать то, что вы хотите: GROUP BY будет рассматривать каждый столбец в списке как причину для создания новой строки: SQL GROUP By и ошибка" имя столбца недопустимо в списке выбора, потому что..."[^]