1、对于复杂的数据库操作,当然是用存储过程好。
但是一些简单的操作,比如插入一条记录INSERT INTO...,这样也值得单独写一个存储过程吗?
如果要插入的字段很多,那岂不要设置很多的输入参数?
很麻烦的样子啊~~~2、对于返回多个数据集的存储过程,是否直接用 SqlDataAdapter.Fill() DataSet,此DataSet应该有多个Table,将返回这多个数据集?
不知道具体的代码应该这么写?哪位大哥给写一个...谢谢!3、对于采用了存储过程的系统,发布给用户使用后,还要人工对数据库添加存储过程吗?
还是发布的安装程序会自动设置数据库的啊?谢谢!

解决方案 »

  1.   

    1、简单的 insert into 那就直接用 sql语句添加了,我是比较烦使用存储过程的,尤其是简单的。2、不是太明白。DataSet里面自然会有多个DataTable 了。
      DataSet1.Tables[0];
     DataSet1.Tables[1]; 
    这么调用呀。
    3、手工添加。所以我才不太喜欢存储过程,如果是程序的话,发个包替换文件就可以了。4、添加修改是一个存储过程。删除吗?呵呵,简单的就直接用sql语句删除了。费那个事呢。
      

  2.   

    问题2 、
    conn.Open();
    string C_name="test2 '06-05-17','0'";   //调用存储过程test2
    SqlDataAdapter objAdapter = new SqlDataAdapter(C_name, conn);
    DataSet ds=new DataSet();
    objAdapter.Fill(ds,"mydb");  //向一个表中填充,但如果返回两个结果集呢?该怎么写?
    conn.Close();如:存储过程:test2----------------
    CREATE PROC  test2
    @year datetime,
    @Num int
    as 
    select * from A表 where [year]=@year and [id]=@Num
    select * from B表 where [year]=@year and [id]=@Num
    GO
      

  3.   

    1.并非以复杂/不复杂来衡量是否写存储过程。
    频繁使用的操作应写成存储过程,这样将加大效率。2.Fill时可以不写表名。3.自然是需要加进去的。但是这一步可以通过企业管理器的生成脚本来解决