私は3つのテーブルを持っています。私はemployeemaintableというメインテーブルを持っています
Fieldname Data Type
* EID Text
Firsname Text
Surname Text
employeeJobdetailstable という 2 番目のテーブル
Fieldname Data Type
* EJobID Text
EID Text
JobDescrip Text
EmployeeAppraisalDetails という 3 番目のテーブル
Fieldname DataType
EApprID Text
EJobID Text
GoalsAchieved Memo
関係は、employeemaintable は多くの employeeJobdetailstable を持つことができ、employeeJobdetailstable は多くの EmployeeAppraisalDetails を持つことができます。
- レコード employeemaintable を正常に作成、更新、および削除できます
- レコードを正常に作成、更新、および削除できます employeeJobdetailstable
- EmployeeAppraisalDetails のレコードを挿入および削除できますが、更新できません。
これが私の更新方法です...
EAppr クラス
public static void AUpdate(string goals, string eapprid)
{
var con = GetConnection();
OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = (@"UPDATE [EmployeeAppraisalDetails] SET [Goalsachieved] = ? WHERE [EApprID] = ?");
cmd.Parameters.AddWithValue("@Goalsachieved", goals);
cmd.Parameters.AddWithValue("@EApprID", eapprid);
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
メインクラス
private void btnUpdateAppr_Click(object sender, EventArgs e)
{
EAppr.AUpdate(cBApprScore.Text, txtApprID.Text);
}
私の質問
私は何を間違っていますか?エラーはないので、EmployeeAppraisalDetails が employeemaintable にリンクされていないためだと思いますか、それとも更新方法が間違っているのでしょうか? アイデアは、employeeJobdetailstable に多くの EmployeeAppraisalDetails を持たせることです。1 つの役職に複数の評価を含めることができます。
どうもありがとう
更新1 ExecuteNonQueryでデバッグしましたが、これが得られたものです
string goals === "Test"
string eapprid === "".
更新 2
GoalsAchieved のデータ型をメモからテキストに変更しました。現在、EmployeeAppraisalDetails に 2 つのレコードがあります。以前の記録ではなく、最新の記録を一度しか更新できませんでした。そのため、アプリケーションを閉じて再起動すると、どちらのレコードも更新できません
更新 3 MS Access 2003 と C# を使用しているため、今回は update パラメータを使用しないことにしました。SQL Server を使用する必要があった場合、手間をかける価値はありません。