2015-03-13 74 views
0

我在寫病人預約應用程序,當我點擊我的按鈕時,它應該從365天(從今天)添加到我的Access文件在Day1列下。C#錯誤 - 參數異常未處理

現在,它工作之前,但現在它給了我一個錯誤。

類型「System.ArgumentException」的未處理的異常出現在system.data.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:\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天?

謝謝。

+3

「數據源」後面沒有'=',您可能必須用某種引號包裝路徑。 – gunr2171 2015-03-13 19:28:03

+0

並請使用參數化查詢來防止SQL注入 – Sybren 2015-03-13 19:36:04

+0

@ gunr2171我有一個「畢竟」「數據源」,並沒有造成問題。編輯:我覺得愚蠢,我沒有意識到你提到,我沒有一個。 – kolton 2015-03-13 19:54:50

回答

1

進口這在頂部

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(); 
      } 

     } 
    } 
    } 
  1. 設置連接字符串
  2. 進口System.Data.OledDB
  3. 使用通過對連接以及
  4. 會如果使用參數化查詢
  5. ,那麼效果會更好