2015-12-15 55 views
1

我想我連接到我的數據庫時遇到問題,因爲它不會在應該更新時更新。我不確定這是爲什麼。 這是我的.aspx.cs文件:我的訪問數據庫不更新(ASP.NET)

public partial class addClass : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 

    private static OleDbConnection GetConnection() 
    { 
     String connection; 
     connection = @"connectionstring"; 

     return new OleDbConnection(connection); 

    } 
    string one = "one"; 
    protected void submitButton_Click(object sender, EventArgs e) 
    { 
     OleDbConnection myConnection = GetConnection(); 


     try 
     { 

      myConnection.Open(); 
      String myQuery = "INSERT INTO Yoga Class([ClassName], [Level], [Duration], [Capacity], [Description]) values ('" + 
       classNameTextBox.Text + "','" + levelDropDownList.SelectedItem.Text + "','" + durationDropDownList.SelectedItem.Text + "','" + capacityDropDownList.SelectedItem.Text + 
       "','" + descriptionTextBox.Text + "');"; 

      String myQuery2 = "INSERT INTO YogaTeacher([TeacherID]) values('" +one+ "');"; 


      OleDbCommand myCommand = new OleDbCommand(myQuery, myConnection); //get rid of parameters 



      myCommand.ExecuteNonQuery(); 

      myConnection.Close(); 
     } 

     catch 
     { 
      Response.Write("Form did not submit due to an error"); 
     } 

     finally 
     { 
      myConnection.Close(); 
     } 
    } 



    } 
} 

我認爲這是不更新的原因是因爲在表「瑜伽班」列teacherID是從另一個表的外鍵。當我點擊提交按鈕時,'catch'語句中的錯誤消息就會顯示。我對麼?如果我如何更改我的代碼以使其工作?

任何幫助表示讚賞

謝謝

+0

請注意,我問你爲什麼使用Microsoft Access?我沒有看到有人在十年內在應用程序上使用訪問數據庫存儲數據,通常不會考慮它這是一個好主意,除非是爲了工作和工作需求,否則你無法控制。更好的選擇包括SQLite,Sql Server Express,Sql Server精簡版,PostGr eSQL,MySql,甚至像MongoDB一樣的nosql。或者也許是爲了大學課程,我真的希望大學班級還沒有在C#課程中教授Microsoft Access數據庫。 –

+0

這段代碼很瘋狂 - 容易被sql注入。它實際上是乞求被黑客攻擊。 –

+0

這隻適用於大學項目,但我很欣賞建議 – Reggie

回答

0

你的連接字符串無效。你必須將其設置爲字符串「的ConnectionString」,它應該是一個完整的格式化正確的連接字符串:如

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb; 
Persist Security Info=False;" 
+0

這是一個示例連接字符串。在我的真實文件中,我有適當的文件路徑。 – Reggie

+0

這是可能性UAC。這是一個訪問數據庫文件,如果它需要提升的權限,那麼你的進程需要以管理員身份運行來打開它。 授予進程/運行您應用訪問權限的用戶對文件的訪問權限。 以管理員身份運行visual studio,然後打開您的項目並查看它是否可用來測試該理論。 –

+0

感謝您的建議,但它沒有奏效。這令人沮喪。 – Reggie

1

您的代碼: 字符串更改爲MyQuery =「INSERT INTO 瑜伽班 ... 表名「瑜伽課」不應該有一個空間,

+0

很好看,但沒有解決問題 – Reggie