【解決方法】どのように、任意の ID 番号にデータを挿入したので、それを編集して、同じ ID 番号に新しいデータを挿入します。


private void cmdSave_Click(object sender, EventArgs e)
        {
            //dbcon.Open();
            try
            {
                dbcon.Open();
                SqlCommand chkID = new SqlCommand("Select ReceiveID from PolicyReceive where ReceiveID='" + txtRID.Text + "'", dbcon);
                string result = (string)chkID.ExecuteScalar();
                dbcon.Close();
                if (txtRID.Text == "")
                {
                    MessageBox.Show("Information Empty", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else if (result == txtRID.Text)
                {//update data

                    for (int item = 0; item <= dataGridView.Rows.Count - 1; item++)
                    {
                        cmd = new SqlCommand("UPDATE PolicyReceive SET ReceiveDate=@ReceiveDate,ReceiveType=@ReceiveType,ReceiveFrom=@ReceiveFrom,MobileNo=@MobileNo,FromZone=@FromZone,PolicyNo=@PolicyNo,PolicyType=@PolicyType,Remarks=@Remarks WHERE ReceiveID=@ReceiveID", dbcon);
                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("@PolicyNo", dataGridView.Rows[item].Cells[1].Value);
                        cmd.Parameters.AddWithValue("@PolicyType", dataGridView.Rows[item].Cells[2].Value);
                        cmd.Parameters.AddWithValue("@ReceiveID", txtRID.Text);
                        cmd.Parameters.AddWithValue("@ReceiveDate", txtRDate.Text);
                        cmd.Parameters.AddWithValue("@ReceiveType", cmbRType.Text);
                        cmd.Parameters.AddWithValue("@ReceiveFrom", txtRByName.Text);
                        cmd.Parameters.AddWithValue("@MobileNo", txtMobile.Text);
                        cmd.Parameters.AddWithValue("@FromZone", cmbFZone.Text);
                        cmd.Parameters.AddWithValue("@Remarks", txtRemarks.Text);
                        dbcon.Open();
                        cmd.ExecuteNonQuery();
                        dbcon.Close();
                        dbcon.Close();
                    }
                    MessageBox.Show("Update DATA OK");
                    //dbcon.Close();
                    listView.Items.Clear();
                    dataView();
                    dbcon.Close();
                }
                else
                {
                    if (txtRID.Text == "")
                    {
                        MessageBox.Show("Plese Given Information", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        txtPolicyNo.Focus();
                    }
                    else
                    {//Insert Data
                        for (int item = 0; item <= dataGridView.Rows.Count - 1; item++)
                        {
                            cmd = new SqlCommand("INSERT INTO PolicyReceive(ReceiveID,ReceiveDate,ReceiveType,ReceiveFrom,MobileNo,FromZone,PolicyNo,PolicyType,Remarks) values (@ReceiveID,@ReceiveDate,@ReceiveType,@ReceiveFrom,@MobileNo,@FromZone,@PolicyNo,@PolicyType,@Remarks)", dbcon);
                            cmd.Parameters.AddWithValue("@PolicyNo", dataGridView.Rows[item].Cells[1].Value);
                            cmd.Parameters.AddWithValue("@PolicyType", dataGridView.Rows[item].Cells[2].Value);
                            cmd.Parameters.AddWithValue("@ReceiveID", txtRID.Text);
                            cmd.Parameters.AddWithValue("@ReceiveDate", txtRDate.Text);
                            cmd.Parameters.AddWithValue("@ReceiveType", cmbRType.Text);
                            cmd.Parameters.AddWithValue("@ReceiveFrom", txtRByName.Text);
                            cmd.Parameters.AddWithValue("@MobileNo", txtMobile.Text);
                            cmd.Parameters.AddWithValue("@FromZone", cmbFZone.Text);
                            cmd.Parameters.AddWithValue("@Remarks", txtRemarks.Text);
                            dbcon.Open();
                            cmd.ExecuteNonQuery();
                            dbcon.Close();
                        }
                        MessageBox.Show("INSER DATA OK");
                        //dbcon.Close();
                        listView.Items.Clear();
                        dataView();
                        dbcon.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            dbcon.Close();
        }

私が試したこと:

I am facing the problem:
There is no problem in inserting new data, but the data edit and edit state, if you insert new data, the previous data becomes the new data.

what i want to do,
1. First, it will check through the ID, if the ID is the same, then it will edit and if it is a new ID, it will insert the data.
2. I inserted the data whose id is 7. This ID 7 has many policies and types. In this way I inserted more Kisu data. Now I will edit the policy on ID 7 and add some more policies. How do I do this?

解決策 1

2 つのテーブルが必要です。1 つは顧客 (またはポリシーが関連するもの) のすべてのポリシーに共通する情報用で、一意の ID 行があり、2 つ目は別の ID とリンクする FOREIGN KEY を持っています。他のテーブルに戻ります。
初めて INSERT を実行するときは、共通データ テーブル行を作成し、その ID を使用して 2 番目のテーブル データを作成します。
以降の INSERT 操作では、新しい行が 2 番目のテーブルに追加されるだけです。

コメント

タイトルとURLをコピーしました