C# 错误 - 未处理参数异常
C# Error - Argument Exception was Unhandled
我正在编写一个患者预约应用程序,当我单击我的按钮时,它应该将 365 天(从今天开始)添加到 Day1 列下的我的 Access 文件中。
现在,它以前是工作的,但现在它给我一个错误。
An unhandled exception of type 'System.ArgumentException' occurred in System.Data.dll
Additional information: Format of the initialization string does not conform to specification starting at index 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:\Users\Kolton\Desktop\Doctor App\Database1.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 天?
谢谢。
要回答您的 奖金 问题,您可能只需直接访问更新查询即可:
UPDATE table SET newvalue WHERE criteria;
所以答案应该是这样的:
UPDATE Sample set Field1 = DateAdd('d', 365, Field1)
注意:我同意 gunr2171 的观点,等号可能是问题所在。已投票
在顶部导入这个
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:\Users\Kolton\Desktop\Doctor App\Database1.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();
}
}
}
}
- 设置您的连接字符串
- 导入System.Data.OledDB
- 连接也用Using
- 如果使用参数化查询会更好
我正在编写一个患者预约应用程序,当我单击我的按钮时,它应该将 365 天(从今天开始)添加到 Day1 列下的我的 Access 文件中。
现在,它以前是工作的,但现在它给我一个错误。
An unhandled exception of type 'System.ArgumentException' occurred in System.Data.dll
Additional information: Format of the initialization string does not conform to specification starting at index 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:\Users\Kolton\Desktop\Doctor App\Database1.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 天?
谢谢。
要回答您的 奖金 问题,您可能只需直接访问更新查询即可:
UPDATE table SET newvalue WHERE criteria;
所以答案应该是这样的:
UPDATE Sample set Field1 = DateAdd('d', 365, Field1)
注意:我同意 gunr2171 的观点,等号可能是问题所在。已投票
在顶部导入这个
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:\Users\Kolton\Desktop\Doctor App\Database1.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();
}
}
}
}
- 设置您的连接字符串
- 导入System.Data.OledDB
- 连接也用Using
- 如果使用参数化查询会更好