我正在编写一个患者预订应用程序,当我单击我的按钮时,它应该将 365 天(从今天开始)添加到我的 Day1 列下的访问文件中。
现在,它以前可以工作,但现在它给了我一个错误。
System.Data 中发生了类型为"System.ArgumentException"的未处理异常.dll
其他信息:初始化字符串的格式不符合从索引 34 开始的规范。
法典:
private void button3_Click(object sender, EventArgs e)
{
DateTime a = dateTimePicker1.Value.Date;
HERE-> System.Data.OleDb.OleDbConnection conn = new
System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data
SourceC:UsersKoltonDesktopDoctor AppDatabase1.accdb"); <- TO HERE
conn.Open();
for (int i = 0; i < 366; i++)
{
DateTime b = a.AddDays(i);
string c = b.ToShortDateString();
using (System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand())
{
cmd.Connection = conn;
cmd.CommandText = "Insert Into Times (Date1) values ('" + c + "')";
cmd.ExecuteNonQuery();
}
}
}
任何帮助,不胜感激。
还有,试图在这里用一块石头杀死两只鸟。作为一个额外的问题,是否可以使此按钮删除列(Date1)下的所有行,然后将其添加到其中365天?
谢谢。
顶部导入
System.Data.OleDb;
private void button3_Click(object sender, EventArgs e)
{
DateTime a = dateTimePicker1.Value.Date;
using(OleDbConnection conn = new
OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=C:UsersKoltonDesktopDoctor AppDatabase1.accdb"))
{
for (int i = 0; i < 366; i++)
{
DateTime b = a.AddDays(i);
string c = b.ToShortDateString();
using (System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand())
{
cmd.Connection = conn;
cmd.CommandText = "Insert Into Times (Date1) values ('" + c + "')";
conn.Open();
cmd.ExecuteNonQuery();
}
}
}
}
- 设置连接字符串
- Import System.Data.OledDB
- 也使用用于连接
- 如果您使用参数化查询会更好
要回答您的奖励问题,您可能只需使用直接访问 UPDATE 查询即可:
https://support.office.com/en-sg/article/Create-and-run-an-update-query-9dddc97c-f17d-43f4-a729-35e5ee1e0514
UPDATE table SET newvalue WHERE criteria;
所以答案是这样的:
UPDATE Sample set Field1 = DateAdd('d', 365, Field1)
注意:我同意 gunr2171 的观点,即等号可能是问题所在。 点赞