ADO.NET中使用DataSet类的增删改

 
ADO.NET中使用DataSet类的增删改
2007-12-27 12:42
仅仅是实现了功能,但无论结构、性能都需要再优化,先记下来吧。。。

        //--------------------------------------------------------;
        // 增加记录
        // 2007-10-19 by sj
        //--------------------------------------------------------;
        private void AddRecord()
        {
            string Name = txtName.Text;
            string ID = txtID.Text;
            string PID = tv.SelectedNode.Name;

            if (Name == "" || ID == "")
            {
                MessageBox.Show("please write something!");
                return;
            }

            DataRow r = myDataSet.Tables["treelist2"].NewRow();
            r["ID"] = ID;
            r["FristChild"] = "-2";
            r["NextSibling"] = "-2";
            r["ChildCount"] = "100";
            r["Name"] = Name;
            r["PID"] = PID;
            r["Tag"] = "1";
            myDataSet.Tables["treelist2"].Rows.Add(r);

            //OleDbCommandBuilder myCommandBuilder = new OleDbCommandBuilder(myAdapter); // 根据myDataAdapter创建相应的语句
            myAdapter.Update(myDataSet, "treelist2"); // 更新数据库

            // 为listview增加新项
            ListViewItem newli = new ListViewItem(ID);
            newli.SubItems.Add("-2");
            newli.SubItems.Add("-2");
            newli.SubItems.Add("100");
            newli.SubItems.Add(Name);
            newli.SubItems.Add(PID);
            lv.Items.Add(newli);

            // 为treeview增加新项
            TreeNode newtn = new TreeNode();
            newtn.Text = Name;
            tv.SelectedNode.Nodes.Add(newtn);
        }
        //--------------------------------------------------------;
        // 删除记录
        // 说明:实际上是将数据库中某个字段的值进行更改,查询时不
        //       显示
        // 2007-10-22 by sj
        //--------------------------------------------------------;
        private void btnDelete_Click(object sender, EventArgs e)
        {
            for (int j = 0; j < lv.SelectedItems.Count; j++)
            {
                if (lv.SelectedItems[j].Checked == true)
                {
                    string ID = lv.SelectedItems[j].SubItems[0].Text;
                    //MessageBox.Show(ID);
                    string Expression = "ID = " + "'" + ID + "'";
                    DataRow[] r = myDataSet.Tables["treelist2"].Select(Expression); ;

                    r[0][6] = "0";

                    OleDbCommand DeleteCommand = new OleDbCommand("Update treelist2 set Tag = '0' where ID = '" + ID + "'");
                    myAdapter.UpdateCommand = DeleteCommand;
                    myAdapter.Update(myDataSet, "treelist2"); // 更新数据库

                    lv.SelectedItems[j].Remove(); // 从listview中删除项
                    string text = tv.SelectedNode.Name;
                    //MessageBox.Show(text);
                    for (int i = 0; i < tv.SelectedNode.GetNodeCount(false); i++)
                    {
                        if (tv.SelectedNode.Nodes[i].Name == ID)
                        {
                            tv.SelectedNode.Nodes[i].Remove();
                        }
                    }
                }
            }
        }
        //--------------------------------------------------------;
        // 修改记录
        // 2007-10-22 by sj
        //--------------------------------------------------------;
        private void AlterRecord()
        {
            string Name = txtName.Text;
            string ID = txtID.Text;

            string Expression = "ID = '" + ID + "'";
            DataRow[] r = myDataSet.Tables["treelist2"].Select(Expression);

            for (int i = 0; i < r.Length; i++)
            {
                r[i][4] = Name;
            }

            OleDbCommand UpdateCommand = new OleDbCommand("Update treelist2 set Name = '" + Name + "' where ID = '" + ID + "'");
            myAdapter.UpdateCommand = UpdateCommand;

            myAdapter.Update(myDataSet, "treelist2"); // 更新数据库

            lv.SelectedItems[0].SubItems[4].Text = Name;
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值