2016-09-03 11 views
0

Oledbの仕組みには最適ではありませんが、私を助けてください。 コードが接続されているアクセスデータベースがあります。問題はCommandTextを実行した後もエラーは発生しませんが、データベースは更新されません。C# - Oledb - 更新していない

私は何かを逃したかもしれない、迷惑をかけないでください。

private void parametersEditCreate() // Used within method below 
    { 
     dateTime = Convert.ToDateTime(dtpDateofBirth.Value.ToShortDateString()); 
     command.Parameters.AddWithValue("@forename", txtForename.Text); 
     command.Parameters.AddWithValue("@surname", txtSurname.Text); 
     command.Parameters.AddWithValue("@username", txtUsername.Text); 
     command.Parameters.AddWithValue("@password", txtPassword.Text); 
     command.Parameters.AddWithValue("@class", txtClass.Text); 
     command.Parameters.AddWithValue("@dob", dateTime.ToString()); 
     command.Parameters.AddWithValue("@gender", txtGender.Text); 
     command.Parameters.AddWithValue("@cf", txtCourseFavourite.Text); 
    } 

    private void createEditRecord(string ID) // If 'Edit' disable StudentID (Autoincrement) and ignore (string ID) parameter, otherwise update. 
    { 
     string query; 
     connection.Open(); 
     if (Teacher.CreateOREdit == "Edit") 
     { 
      query = "UPDATE tblStudent SET [Forename][email protected],[Surname][email protected],[Username][email protected],[Password][email protected],[Class][email protected],[DateofBirth][email protected],[Gender][email protected],[Course Favourite][email protected] WHERE [StudentID][email protected]"; 
      command = new OleDbCommand(query, connection); 
      command.Parameters.AddWithValue("@id", txtStudentID.Text); 
      parametersEditCreate(); 

     } 
     else //Create - FOR STACKOVERFLOW, ignore else 
     { 
      query = "INSERT INTO tblStudent([Forename],[Surname],[Username],[Password],[Class],[DateofBirth],[Gender],[Course Favourite]) VALUES (@forename,@surname,@username,@password,@class,@dob,@gender,@cf)"; 
      command = new OleDbCommand(query, connection); 
     } 

     command.ExecuteNonQuery(); 
     connection.Close(); 
    } 
+0

を使用して試みることができる 'int型にrowsAffected = cmd.ExecuteNonQuery()は、'影響を受けた行数を教えてくれます。ゼロ以外の場合は、[なぜ変更をデータベースに保存するのが失敗するのですか?](http://stackoverflow.com/q/17147249/1070452)を参照してください。 DataAdapterは、あなたのためにそのほとんどを(データ型の変換なしで)行うために教えることができます – Plutonix

+0

何もないのですが、あなたの5つの質問に8つの答えがあります - (いくつかの[利用可能な最良のマインド](http:// stackoverflow .com/a/38464280/1070452)!)。あなたはUnAnswered Listから削除されるように、動作するものを受け入れる(チェックマークをクリックする)ために1分かかるべきです。助けや知らせるQやA(どこでも)をアップアップすることもできます。これは他の人が良い答えを見つけるのを助けます。あなたが[ツアー]を取った場合、その点でSQの仕組みが説明されています。 – Plutonix

答えて

0

あなたはこれらの事に

string query; 
    OleDBlDataAdaptor da; 
    OleDBCommandBuilder cb; 
    DataSet ds = new DataSet(); 
関連する問題