2012-04-07 4 views
0

데이터 테이블의 데이터를 삽입하는 데 다음 오류가 발생했습니다. 표시된 오류는 변수 이름 '@ ndate1'이 (가) 이미 선언되었습니다. 변수 이름은 쿼리 일괄 처리 또는 저장 프로 시저 내에서 고유해야합니다. .net에 대한 새로운 소식입니다. 내가이 오류를 수정하는 방법을 날이 오류를 해결하기 위해 도와주세요 ..gridview에서 for 루프를 통해 데이터를 삽입하십시오.

내 parital 코드가 여기에있다 ..

  for (int i = 0; i <= DT.Rows.Count; i++) 
      { 
       //sqlcmd.Parameters.Add("@company", SqlDbType.NVarChar).Value = Convert.ToString(dr["company"]); 
       sqlcmd.CommandText = @" Insert into tbl_rtdata (fld_date,fld_dtcode,fld_company,fld_primary,fld_sales,fld_balance) 
       values (@ndate1,@dtcode1,@company1,@billing1,@sales1,@balance1)"; 
       sqlcmd.Parameters.AddWithValue("@ndate1", SqlDbType.NVarChar).Value = Convert.ToString(DT.Rows[i]["ndate"]); 
       sqlcmd.Parameters.AddWithValue("@dtcode1", SqlDbType.NVarChar).Value = Convert.ToString(DT.Rows[i]["dtcode"]); 
       sqlcmd.Parameters.AddWithValue("@company1", SqlDbType.NVarChar).Value = Convert.ToString(DT.Rows[i]["company"]); 
       sqlcmd.Parameters.AddWithValue("@billing1", SqlDbType.NVarChar).Value = Convert.ToString(DT.Rows[i]["billing"]); 
       sqlcmd.Parameters.AddWithValue("@sales1", SqlDbType.NVarChar).Value = Convert.ToString(DT.Rows[i]["sales"]); 
       sqlcmd.Parameters.AddWithValue("@balance1", SqlDbType.NVarChar).Value = Convert.ToString(DT.Rows[i]["balance"]); 


       sqlcmd.ExecuteNonQuery(); 
      } 

첫 행은

답변

0

로 코드를 수정 ... 데이터베이스에 삽입 이하. 이 당신을 도울 것입니다

for (int i = 0; i <= DT.Rows.Count; i++) 
     { 

      sqlcmd = new SqlCommand(); 
      sqlcmd.Connection = objconn; 

      //sqlcmd.Parameters.Add("@company", SqlDbType.NVarChar).Value = Convert.ToString(dr["company"]); 
      sqlcmd.CommandText = @" Insert into tbl_rtdata (fld_date,fld_dtcode,fld_company,fld_primary,fld_sales,fld_balance) 
      values (@ndate1,@dtcode1,@company1,@billing1,@sales1,@balance1)"; 
      sqlcmd.Parameters.AddWithValue("@ndate1", SqlDbType.NVarChar).Value = Convert.ToString(DT.Rows[i]["ndate"]); 
      sqlcmd.Parameters.AddWithValue("@dtcode1", SqlDbType.NVarChar).Value = Convert.ToString(DT.Rows[i]["dtcode"]); 
      sqlcmd.Parameters.AddWithValue("@company1", SqlDbType.NVarChar).Value = Convert.ToString(DT.Rows[i]["company"]); 
      sqlcmd.Parameters.AddWithValue("@billing1", SqlDbType.NVarChar).Value = Convert.ToString(DT.Rows[i]["billing"]); 
      sqlcmd.Parameters.AddWithValue("@sales1", SqlDbType.NVarChar).Value = Convert.ToString(DT.Rows[i]["sales"]); 
      sqlcmd.Parameters.AddWithValue("@balance1", SqlDbType.NVarChar).Value = Convert.ToString(DT.Rows[i]["balance"]); 


      sqlcmd.ExecuteNonQuery(); 
     } 

희망 .... 행복 .. 코딩은

0

당신은 다른 사람이 첫 번째 루프에서 매개 변수의 수집을 유지 sqlcmd.Parameters.Clear를 추가해야합니다.

for (int i = 0; i <= DT.Rows.Count; i++) 
      { 
       sqlcmd.Parameters.Clear(); 
       sqlcmd.CommandText = @" Insert into tbl_rtdata (fld_date,fld_dtcode,fld_company,fld_primary,fld_sales,fld_balance) 
       values (@ndate1,@dtcode1,@company1,@billing1,@sales1,@balance1)"; 
       sqlcmd.Parameters.AddWithValue("@ndate1", SqlDbType.NVarChar).Value = Convert.ToString(DT.Rows[i]["ndate"]); 
       sqlcmd.Parameters.AddWithValue("@dtcode1", SqlDbType.NVarChar).Value = Convert.ToString(DT.Rows[i]["dtcode"]); 
       sqlcmd.Parameters.AddWithValue("@company1", SqlDbType.NVarChar).Value = Convert.ToString(DT.Rows[i]["company"]); 
       sqlcmd.Parameters.AddWithValue("@billing1", SqlDbType.NVarChar).Value = Convert.ToString(DT.Rows[i]["billing"]); 
       sqlcmd.Parameters.AddWithValue("@sales1", SqlDbType.NVarChar).Value = Convert.ToString(DT.Rows[i]["sales"]); 
       sqlcmd.Parameters.AddWithValue("@balance1", SqlDbType.NVarChar).Value = Convert.ToString(DT.Rows[i]["balance"]); 


       sqlcmd.ExecuteNonQuery(); 
      } 
관련 문제