在记录之间插入新记录,然后按+1更新所有记录

时间:2015-04-03 11:04:52

标签: asp.net sql-server

我想在记录之间插入新记录,并将所有后续记录更新为1 像

1   aaa   450
2   bbb   550
3   ccc   780
4   ddd   745

我想在第3位插入记录,在表格中我会将id = 3,然后下一条记录将以+1更新。

就像我插入3然后没有。 3记录将是4和没有。 4记录将是5

我是通过SQL Server 2008中的这些代码完成的。

UPDATE Testing 
SET id = id + 1 
WHERE id >= 3 

INSERT INTO Testing (id, CName, Value) 
VALUES (3, 'ddd', 589)

SELECT * 
FROM Testing 
ORDER BY id ASC

它正在SQL SeErver 2008中工作

我希望在asp.net应用程序中发生这种情况,这就是我疯了。

请帮助我!!

1 个答案:

答案 0 :(得分:1)

您的网络应用程序中的C#代码

    string ConnectionString = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
        using (SqlConnection con = new SqlConnection(ConnectionString))
        {
            //Create the SqlCommand object
            SqlCommand cmd = new SqlCommand("spAddNumber", con);
            //Specify that the SqlCommand is a stored procedure
            cmd.CommandType = System.Data.CommandType.StoredProcedure;

            //Add the input parameters to the command object
            cmd.Parameters.AddWithValue("@id", "3");
            cmd.Parameters.AddWithValue("@CName", "ddd");
            cmd.Parameters.AddWithValue("@Value", "589");


            //Open the connection and execute the query
            con.Open();
            cmd.ExecuteNonQuery();
}

和你的存储过程。添加此StoredProcedure时检查CName的长度

Create Procedure spAddNumber
@id int,
@CName nvarchar(10),
@Value int
as
Begin
UPDATE Testing SET id = id + 1 WHERE id >= 3 
insert into Testing (id,CName ,Value ) values (@id ,@CName ,@Value )

End

如果您打算直接使用Sqlcommand

 using (SqlConnection connection = new SqlConnection(ConnectionString))
{
    connection.Open();
    SqlCommand command = new SqlCommand("Your Query Here", connection);
     cmd.ExecuteNonQuery();
}