0

私はすでにIDENTITYデータベースを yes に設定しており、アプリケーションを実行するたびにキーが自動インクリメントされず、null 値が許可されないというエラーが表示されます

private void button8_Click(object sender, EventArgs e)
        {

            string fname = textBox1.Text;
            string lname = textBox2.Text;
            //int idnum = Convert.To(textBox3.Text);
            int mobnum = Convert.ToInt32(maskedTextBox1.Text);
            string email = textBox4.Text;

            int EdInst = comboBox1.SelectedIndex+1;
            string EdLev = comboBox3.SelectedText;
            string EdName = comboBox2.SelectedText;
            Boolean Valid = true;
            Valid = Validation(Valid);

            if (Valid == true)
            {
                IS2Team1_TriplexDBDataSet.ApplicantRow NewApplicantRow = iS2Team1_TriplexDBDataSet1.Applicant.NewApplicantRow();

                IS2Team1_TriplexDBDataSet.ApplicationRow NewApplicationRow = iS2Team1_TriplexDBDataSet1.Application.NewApplicationRow();

                //NewApplicantRow.Applicant_ID = ??;  // What do i do here for the ID to auto increment?
                NewApplicantRow.First_Name = fname;
                NewApplicantRow.Last_Name = lname;
                //NewApplicantRow.ID_Number =Convert.ToInt32(textBox3.Text);
                NewApplicantRow.Contact_Number = mobnum;
                NewApplicantRow.Email_Address = email;
                NewApplicantRow.University_ID = EdInst;

              //NewApplicationRow.Application_ID = ??; // What do i do here for the ID to auto increment?
                NewApplicationRow.Application_Status = "Recieved";
                NewApplicationRow.Application_Date = DateTime.Today;



                iS2Team1_TriplexDBDataSet1.Applicant.Rows.Add(NewApplicantRow);
                iS2Team1_TriplexDBDataSet1.Application.Rows.Add(NewApplicationRow);

                MessageBox.Show("Application Submitted", "Application Submitted");

                this.applicantTableAdapter.Update(this.iS2Team1_TriplexDBDataSet1);


                //Hide();
                //Form4 frmUpdate = new Form4();
                //frmUpdate.Show();

            }
                else if (Valid == false)
            {
                    MessageBox.Show("Required Information Missing");
                    textBox1.Focus();
            }
4

3 に答える 3

0

自動インクリメントのビューを見ることができますか? +1 または ID (1,1) として設定する必要があります。

于 2013-09-23T09:39:46.023 に答える
0

プロジェクトで EDMX を開き、列をクリックしてプロパティ (F4) を確認します。StoreGeneratedPattern を Identity に設定します。

于 2013-09-23T09:43:23.993 に答える
0

Table-Definition で次の値を設定する必要があります。

画像

サンプル: Entity-Framework 用ではありません:

新しい行を挿入する場合は、単純に ID 行を無視して、@@Identityで自動生成された ID を取得します。

この助けを願っています!

未テストの例を次に示します。

public static void Test()
    {
        int cIdentity = 0;

        SqlConnection cConnection = new SqlConnection("...");
        cConnection.Open();

        SqlCommand cCommand = new SqlCommand("Insert INTO TestTable (Name) VALUES ('Test'); "+
            "SELECT @@IDENTITY AS Ident", cConnection);

        IDataReader cReader = null;

        try
        {
            cReader = cCommand.ExecuteReader(CommandBehavior.CloseConnection);
            if (cReader.Read())
            {
                cIdentity = cReader.GetInt32(0);
            }
        }
        catch(Exception ex)
        {
            Console.WriteLine(ex);
            if (cReader != null)
            {
                cReader.Close();
            }
        }
        finally
        {
            if (cConnection != null)
            {
                cConnection.Close();
            }
        }
    }
于 2013-09-23T09:43:43.693 に答える