我目前正在尝试将多个日期插入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而不是以下选定的日子我会非常感激。 :)
先谢谢大家回答。
答案 0 :(得分:1)
因此对于可能遇到与我相同问题的每个人:
我显然忘了在声明它们之后清除我的参数。这么简单
command.Parameters.Clear();
为我做了这份工作。
答案 1 :(得分:0)
扩展我的评论:这有用吗?
union