C# winform datagridview的问题

想做一个输入文本,若文本数据在表里,则删除这个数据,然后,删除第二个的时候,第一个数据又出现在表中了,请问有什么办法?不使用数据库的,存放在datatable里

  private void txtPN_KeyPress(object sender, EventArgs e)
        {
            string PartNumber = txtPN.Text.ToString();

            if (!this.IsNullFilePath())
            {
                txtPN.Text = "";
                return;
            }

            DataTable newdt = new DataTable();

            newdt = this.CompareList()[1];

            if (PartNumber != "")
            {
                DataRow[] drs = newdt.Select(@"pn='" + PartNumber + "'");
                if (drs.Length > 0)
                {
                    this.txtslot.Text = drs[0]["slot"].ToString();
                    newdt.Rows.Remove(drs[0]);
                    dataGridView1.DataSource = newdt;
                }
                else
                {
                    MessageBox.Show("此PN不存在");
                }
            }
        }

1个回答

newdt = this.CompareList()[1];,你的数据每次都是从这提取的吧,你只是remove当前newdt 的数据了,

u013901830
我不是大侠 回复happyleo12: 放到方法外边啊
接近 3 年之前 回复
happyleo12
happyleo12 我知道,我想做第一次从 this.CompareList()[1];提取,第二次就不用了,form没有session变量,不知道怎么做
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐