1

Visual Studio 2012 でエンティティ フレームワークを使用しました。すべて正常に動作していますが、SaveChanges() 呼び出しが発生すると、追加の成功メッセージが表示されますが、データがデータベースに挿入されません。誰かが私を助けることができますか?

これが完全なプロジェクトのコードとリンクです。 https://docs.google.com/file/d/0BzGC-O73lSx7UDd4NFVxRXQyVG8/edit?usp=sharing

private void button1_Click(object sender, EventArgs e)
{
     Database1Entities db = new Database1Entities();
     Student s = new Student();
     s.Name = StudentName.Text;              
     s.Address = Address.Text;

     db.Students.Add(s);
     if (db.SaveChanges() > 0)
     {
         MessageBox.Show("Addition Successfull");
     }
     else
     {
         MessageBox.Show("Addition Failed");
     }
}

そして私のデータベーススクリプト。

CREATE TABLE [dbo].[Student] (
    [Id]      INT          IDENTITY (1, 1) NOT NULL,
    [Name]    VARCHAR (50) NULL,
    [Address] VARCHAR (50) NULL,
    PRIMARY KEY CLUSTERED ([Id] ASC)
);

前もって感謝します。

4

1 に答える 1

0

この条件を使用して検証しています:

if (db.SaveChanges() >= 0)

したがって、0の場合でも印刷しますAddition Successfull

代わりに例外をキャッチする必要があります。例外を取得しない場合は成功です。

 using (var db = new Database1Entities())
 {
 Student s = new Student();
 s.Name = StudentName.Text;              
 s.Address = Address.Text;

 try 
 {
     db.Students.Add(s);
     int numOfUpdate = db.SaveChanges();
     MessageBox.Show("Addition Successfull:" + numOfUpdate.ToString() + "updates");
 }
 catch(Execption ex)
 {
     MessageBox.Show("Addition Failed:" + ex.Message);
 }
 }
于 2013-10-05T12:30:17.743 に答える