2012-04-07 8 views
0

Ich erhielt den folgenden Fehler beim Einfügen von Daten aus Datentabelle. Der angezeigte Fehler ist Der Variablenname '@ ndate1' wurde bereits deklariert. Variablennamen müssen innerhalb eines Abfrage-Batches oder einer gespeicherten Prozedur eindeutig sein. bin neu für .net. Wie kann ich diesen Fehler zu beheben bitte helfen Sie mir diesen Fehler zu beheben ..Einfügen von Daten aus der Gridview durch for-Schleife

Mein parital Code hier ist ..

  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(); 
      } 

Erste Zeile nur in die Datenbank eingefügt ...

Antwort

0

Ändern Sie den Code als unten.

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(); 
     } 

Hoffnung das wird Ihnen helfen .... glücklich Codierung ..

0

Sie müssen nur sqlcmd.Parameters.Clear hinzufügen sonst wird es die Parametersammlung aus der ersten Schleife aufrechtzuerhalten.

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(); 
      } 
Verwandte Themen