返回首页

您好任何人都可以请你告诉我为什么这不起作用。什么我试着做,是从数据库中读取数据,然后我想插入一个不同的表和另一个科拉姆。

  public void InsertUniqueGymMemberTrainingProgram(string gmemberID, int daynum)

        {

            

            using (SqlConnection conn = new SqlConnection(connectionString))

            {

 

                SqlCommand cmd = new SqlCommand("procGetProg1Day",conn);

                cmd.CommandType = CommandType.StoredProcedure;

                //cmd.CommandText = "procGetProg1Day";

                //cmd.Connection = conn;



                cmd.Parameters.Add(new SqlParameter("@dayNum", SqlDbType.SmallInt));

                cmd.Parameters["@dayNum"].Value = daynum;

 

                conn.Open();

                SqlDataReader reader = cmd.ExecuteReader();

                while(reader.Read())

                {

                    SqlCommand insCmd = new SqlCommand("procInsertUniqueGymMemberTrainingProgram", conn);

                    insCmd.CommandType = CommandType.StoredProcedure;

                    // insCmd.CommandText = "procInsertGymMemberTrainingProgram";

                   

                    insCmd.Parameters.Add(new SqlParameter("@GymMemberID", SqlDbType.NVarChar,20));

                    insCmd.Parameters["@GymMemberID"].Value = gmemberID;

 

                    insCmd.Parameters.Add(new SqlParameter("@ExerciseID", SqlDbType.SmallInt));

                    insCmd.Parameters["@ExerciseID"].Value = Convert.ToInt32(reader[2]);

 

                    insCmd.Parameters.Add(new SqlParameter("@TrainingProgramID", SqlDbType.SmallInt));

                    insCmd.Parameters["@TrainingProgramID"].Value = Convert.ToInt32(reader[1]);

 

                    insCmd.Parameters.Add(new SqlParameter("@DayNumber", SqlDbType.SmallInt));

                    insCmd.Parameters["@DayNumber"].Value = Convert.ToInt32(reader[0]);

 

                    conn.Open();

                    insCmd.ExecuteNonQuery();

                }

                reader.Close();

            }

        }

在提前{S0的}感谢

{C} 和第二

ALTER PROCEDURE [dbo].[procInsertUniqueGymMemberTrainingProgram]

@GymMemberID nvarchar(20),

@ExerciseID smallint,

@TrainingProgramID smallint,

@DayNumber smallint

AS

INSERT INTO GymMemberTrainingProgram(GymMemberID, ExerciseID,TrainingProgramID,DayNumber)

VALUES(@GymMemberID,@ExerciseID,@TrainingProgramID,@DayNumber)

回答

评论会员:米卡Wendelius 时间:2012/02/06
你遇到什么问题?你得到一个异常?如果你调试通过的代码,你得到的第一个程序行等..

你可以这样做的另一种方式是在一个单一的使用语句的语句执行整个事情:
{体C3}如果你设置了正确的参数,并执行上面的语句,你不应该需要通过在客户端的所有记录,这将是更有效的循环
评论会员:游客 时间:2012/02/06
CodingLover:不要打开SQL连接多次。我可以看到你有在while循环以及之前进入它打开连接