1 つの接続で複数のデータを保存する別の方法があります。このようなタイプのテーブルを作成します
CREATE TYPE [dbo].[YourTypeName] AS TABLE(
    [Col1] [bigint] NULL,
    [Col2] [datetime] NULL,
    [Col3] [bigint] NULL,
    [Col4] [bigint] NULL,
    [Col5] [datetime] NULL
)
そして、このような手順を書きます....
CREATE PROCEDURE [dbo].YOURPROCEDURENAME]
( 
    @yourDataTableName YourTypeName READONLY
)
AS
    INSERT INTO TableName
    (Col1,
     Col2,                        
     Col3,
     Col4,
     Col5)
    SELECT CP.Val1,
           CP.Val2,
           CP.Val3,
           CP.Val4,
           CP.Val15)
   FROM @yourDataTableName  CP
GO
そして、コードビハインドでデータテーブルを作成し、そのデータテーブルを次のようにprosedureに渡します...
SqlCommand cmd = new SqlCommand("YOURPROCEDURENAME");
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@yourDataTableName", SqlDbType.Structured).Value = datatable;
cmd.Parameters[0].TypeName = "YourTypeName ";