将Monthcalendar中的多个日期插入Access-mdb

时间:2015-11-11 18:29:58

标签: c# database ms-access

我目前正在尝试将多个日期插入Access数据库。 我用来做这个的代码看起来像这样:

string start = monthCalendar1.SelectionRange.Start.ToShortDateString();
string end = monthCalendar1.SelectionRange.End.ToShortDateString();
DateTime startDay = Convert.ToDateTime(start);
DateTime endDay = Convert.ToDateTime(end);
_startDate = startDay;
_endDate = endDay;
do
{
    var VacationDate = _startDate.ToShortDateString();
    var VacationStart = DateTime.MinValue.ToShortTimeString();
    var VacationEnd = DateTime.MinValue.ToShortTimeString();
    var VacationPause = DateTime.MinValue.ToShortTimeString();
    var Worktime = "08:00";
    var Comments = "on Vacation";       
    command.Parameters.AddWithValue("Date", VacationDate);
    command.Parameters.AddWithValue("Start", VacationStart);
    command.Parameters.AddWithValue("End", VacationEnd);
    command.Parameters.AddWithValue("Pause", VacationPause);
    command.Parameters.AddWithValue("Worktime", Worktime);
    command.Parameters.AddWithValue("Comments", Comments);      
    command.CommandText = "insert into " + user + " (Date, Start, End, Pause, Worktime, Comments) values (@Date, @Start, @End, @Pause, @Worktime, @Comments)";
    command.Connection = con;
    command.ExecuteNonQuery();      
    string query = "select * from " + user;
    command.CommandText = query;
    OleDbDataAdapter Daten = new OleDbDataAdapter(command);
    DataTable Datenquelle = new DataTable();
    Daten.Fill(Datenquelle);        
    dataGridView1.DataSource = Datenquelle;
    dataGridView1.AllowUserToResizeColumns = true;
    dataGridView1.AllowUserToResizeRows = true;
    dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
    int totalRowHeight = dataGridView1.ColumnHeadersHeight;
    foreach (DataGridViewRow row in dataGridView1.Rows)
        totalRowHeight += row.Height;
    dataGridView1.Height = totalRowHeight;
    this.Height = dataGridView1.Height + 100;       
    _startDate = _startDate.AddDays(1);
}
while (_startDate <= _endDate);
{
    Debug.WriteLine(startDay);
    startDay = startDay.AddDays(1);
}

到目前为止,我的代码似乎工作正常,如果您在Monthcalendar中选择三个日期,我可以添加三个日期。 但我没有得到实际的日期。例如,我所获得的是我的数据库中具有相同日期的3个以下条目。 (这是开始日期)

也许我现在正在编写代码以查看我的错误....如果有人可以告诉我为什么它只插入我的初始startDate而不是以下选定的日子我会非常感激。 :)

先谢谢大家回答。

2 个答案:

答案 0 :(得分:1)

因此对于可能遇到与我相同问题的每个人:

我显然忘了在声明它们之后清除我的参数。这么简单

command.Parameters.Clear();

为我做了这份工作。

答案 1 :(得分:0)

扩展我的评论:这有用吗?

union