现在要更新数据,SQL表里一个关键ID数值,我想如果更新的数据的ID数值已经存在SQL表中就update该ID对应的数据,如果不存在就insert一条新的数据!在cs代码文件中用存贮过程怎么写好!

解决方案 »

  1.   

    这个问题其实应该去SQL区提问
    推荐的办法是在存储过程里解决,包括ID是否存在,以及后续的操作
    在CS里只需要执行一个存储过程,传入相关参数就行
      

  2.   

    select @num=count(ID) from table where ID=@ID
    if @num>0
      更新
    else
      插入
      

  3.   

    create proc test
    @id int
    as
    begin tran
    if @id=0 
    begin
        insert into ...
    end
    else
    begin
        update tableName set ... where id=@id
    end
    if @@error=0
      commint tran
      return 1
    else
      rollback 
      return 0
    部分代码 ,需要修改一下。
      

  4.   

    我用的是vs2003.net 想在CS代码文件中实现
      

  5.   

    回复人: dreams1981(子山) ( ) 信誉:100  2005-12-26 11:28:00  得分: 0  
     
     
       我用的是vs2003.net 想在CS代码文件中实现
      
     
    ---------------------------------------------------------------------------------就算是用vs2003.net在CS里实现
    也得在SQL里写个存储过程,然后在CS里调用例子:
    变量说明
    myCommand 为 SqlCommand 实例
    openConnection为打开数据库连接方法,换成你自己的
    closeConnection为关闭数据库连接方法,也换成你自己的
    param为参数
    procName为存储过程名称
    代码如下
    openConnection(connStr);
    myCommand.Parameters .Add(param);
    myCommand.CommandType = CommandType.StoredProcedure ;
    myCommand.CommandText = procName;
    myCommand.ExecuteNonQuery();
    myCommand.Parameters.Clear();
    closeConnection();
      

  6.   

    好像可以不用存储过程,把多条语句,包括分支语句写到一个SQL查询串中,用一command来执行hz
      

  7.   

    是的我想的就是类似
    System.Data .SqlClient .SqlCommand sqlcom=null;
    sqlcom=new SqlCommand ("INSERT INTO......
    这样的代码?有人晓得吗?