在内存中连续添加几条记录,再在数据库中更新

2010年01月10日 星期日 下午 10:23

一般给数据库每添加一条记录就得打开一次数据库连接,如果要添加多条记录就得多次打开数据库,增加了系统资源的占用,影响了系统的运行速度,因此,可以先在内存中添加记录,完成后再对数据库更新,这样可大大提高系统资源的利用率。如何做到的呢?

一、定义一个函数,给它传送一个数据集参数:

public void updategrid_1(DataSet ds)
        {
            SqlCommand cmd = new SqlCommand("insert into grid_1(name,sex,age,weight) values(@name,@sex,@age,@weight)",cn);
            cmd.Parameters.Add("@name",SqlDbType.Char,10,"name");
            cmd.Parameters.Add("@sex", SqlDbType.Char, 10, "sex");
            cmd.Parameters.Add("@age", SqlDbType.Char, 10, "age");
            cmd.Parameters.Add("@weight", SqlDbType.Char, 10, "weight");
            da = new SqlDataAdapter();
            da.InsertCommand=cmd;
            cn.Open();
            da.Update(ds,common.Class1.table_grid_1);
            cn.Close();
        }

二,在按钮的单击事件中进行调用:

protected void Button1_Click(object sender, EventArgs e)
    {
        //方法1
        // dataaccess.Class1 dac=new dataaccess.Class1();
        // string sql = "insert into grid_1(name,sex,age,weight) values('"+this.TextBox1.Text+"','"+this.TextBox2.Text+"','"+this.TextBox3.Text+"','"+this.TextBox4.Text+"')";
        // dac.executesql(sql);
        //方法2
        dataaccess.Class1 dac = new dataaccess.Class1();
        DataSet ds = dac.getgrid_1();
        DataRow dr = ds.Tables[0].NewRow();
        dr["name"] = this.TextBox1.Text;
        dr["sex"] = this.TextBox2.Text;
        dr["age"] = this.TextBox3.Text;
        dr["weight"] = this.TextBox3.Text;
        ds.Tables[0].Rows.Add(dr);
        dr = ds.Tables[0].NewRow();
        dr["name"] = "aaa";
        dr["sex"] = "bbb";
        dr["age"] = "ccc";
        dr["weight"] = "ddd";
        ds.Tables[0].Rows.Add(dr);
        dac.updategrid_1(ds);
        binddata();
    }

三、运行效果:


 

posted @ 2010-03-23 12:45  PROS  阅读(541)  评论(0)    收藏  举报