我们C#做一个窗体 往数据库里插入数据
           SqlConnection cn = new SqlConnection("Data Source=20090713-1752\\SQLEXPRESS;Initial Catalog=goods;Integrated Security=True");
          cn.Open();          SqlDataAdapter da = new SqlDataAdapter("insert into goods values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "')", cn);
           DataSet ds=new DataSet ();
           da.Fill(ds, "goods");
          
            MessageBox.Show("OK");
            cn.Close();
只有一个表 id name num(数量)。现在每插入一行就显示一行,,,,假若我先插入1 馒头 20, 然后再插入 1 馒头 11 , 如何让使其显示一行 1 馒头 31 啊  

解决方案 »

  1.   

    这样的话,用楼主的编码方式直接显示结果的话,有点困难.应当吧插入和显示分2个部分.插入是一条一条的插入,但是显示的话,需要另一个方法.
    SqlConnection cn = new SqlConnection("Data Source=20090713-1752\\SQLEXPRESS;Initial Catalog=goods;Integrated Security=True"); 
              cn.Open();           SqlDataAdapter da = new SqlDataAdapter("insert into goods values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "')\n select id, [name], sum([sum]) as [sum]", cn); 
              DataSet ds=new DataSet (); 
              da.Fill(ds); 
              
                MessageBox.Show("OK"); 
                cn.Close(); 这样,在ds里就会保存合计后的数据了.
    不过.楼主给出的代码好像不能运行成功,因为如果使用插入命令,那么SqlDataAdapter对象要显示的指定插入模块的初始化值.
      

  2.   

    da.Fill(ds, "select id, name,sum( num) as sum from goods group by id,name"); 
      

  3.   


    SqlDataAdapter da = new SqlDataAdapter("insert into goods values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "')", cn);  数据库表 goods 与数据库名称goods重名了实现你的方法思路是: 先将数据插入数据库表,然后在查询
      

  4.   

    create table goods (id int,name varchar(50),num int)create trigger tri_goods
    on goods 
    instead of insert
    as
    begin
    update a set a.num=a.num+b.num
    from goods a join inserted b on a.id=b.id and a.name=b.name
    insert into goods(id,name,num) select id,name,num from inserted t where not exists(select 1 from goods with(nolock) where id=t.id and name=t.name)
    endinsert into goods(id,name,num) select 1,'馒头',11
    insert into goods(id,name,num) select 1,'馒头',20
    insert into goods(id,name,num) select 1,'白菜',20select * from goods
    哈 很久没写触发器了