c#
  • datagridview
  • 2015-02-07 1 views 0 likes 
    0

    Я развиваю систему продаж.Как показать базу данных в DataGridView по месяцам

    Моя проблема: Мне нужно показать свою базу данных ежемесячно, но мой код не работает.

    Мой код:

    sql = "select * from POS where iDate = '" + DateTime.Now.ToString("M/d/yyyy") + "'"; 
         da = new OleDbDataAdapter(sql, con); 
         dt.Clear(); 
         da.Fill(dt); 
         dataGridView1.DataSource = dt; 
    

    Спасибо :)

    +0

    Что вы подразумеваете под "показывать ежемесячно"? Не совсем понятно, что вы делаете, можете ли вы показать пример своих данных, что вы хотите получить от него и что вы сейчас получаете? –

    +0

    Не могли бы вы также определить «не работает»? Вы не получаете нужный результат? Не получить никаких результатов вообще? Исключено? Полная информация поможет получить ответ. –

    ответ

    1

    Вы не должны создавать SQL запросы, как это, это очень небезопасно. Вместо этого используйте конструктор OleDbCommand. Для выбора дат в конкретном месяце/году вы можете использовать DATEPART. Ниже я кое-что написал очень быстро, поэтому он не проверен. Возможно, вам придется немного подкорректировать его.

    OleDbDataAdapter adapter = new OleDbDataAdapter(); 
    OleDbCommand command; 
    
    // Create the SelectCommand. 
    command = new OleDbCommand("SELECT * FROM POS " + 
              "WHERE DATEPART(m, iDate) = @Month "+ 
              "AND DATEPART(yyyy, iDate) = @Year", con); 
    
    command.Parameters.AddWithValue("@Month", 2); 
    command.Parameters.AddWithValue("@Year", 2015); 
    
    adapter.SelectCommand = command; 
    
    Смежные вопросы