使用数据库上的多个插入行自动增加日期+ 1天

时间:2014-10-09 14:49:22

标签: c# visual-studio-2013 ms-access-2010

我是来自C#的全新手,我目前正在使用VS 2013和访问数据库而且我试图插入多条记录,但我的问题是我要插入所选日期的值通过日期时间选择器插入,它是一天自动增量..我试图根据我学到的东西制作代码..它有一个小问题

在我的数据库中我想使用for循环插入10个多个记录,在我的尝试中发生了什么是这个

EID     date
---------------
10175   10/9/14
10175   10/9/14
10175   10/9/14
10175   10/9/14
10175   10/9/14
10175   10/9/14
10175   10/9/14
10175   10/9/14
10175   10/9/14
10175   10/9/14

我想要发生的是:

EID     date
----------------
10175   10/9/14
10175   10/10/14
10175   10/11/14
10175   10/12/14
10175   10/13/14
10175   10/14/14
10175   10/15/14
10175   10/16/14
10175   10/17/14
10175   10/18/14

这是我的代码,顺便说一下,我的EID不是主要的,所以我不介意重复

connection.Open();

OleDbCommand command = new OleDbCommand();
command.Connection = connection;

int ctr = 0;
int counter;
counter =int.Parse(TimeIntxt.Text);
String counter2;

for (ctr=0; ctr<10;ctr++ )
{
    counter++;
    counter2 = dateTimePicker1.Value.AddDays(1).ToString();

    command.CommandText = "insert into EmployeeData (EID,DateIn) values('" + counter + "','" + counter2 + "')";
    command.ExecuteNonQuery();
}

MessageBox.Show("Success");
connection.Close();

1 个答案:

答案 0 :(得分:2)

您的代码counter2 = dateTimePicker1.Value.AddDays(1).ToString();的这一行应为counter2 = dateTimePicker1.Value.AddDays(ctr + 1).ToString();

另外 - 虽然在你的情况下它不是很重要,但是使用参数化查询而不是通过连接构建命令会更好,这有助于防止sql注入。

有关命令参数及其使用方法的参考,请参阅MSDN