Aggiunta di dati personalizzati a bulkcopy

asp.net c# sqlbulkcopy

Domanda

Ho un codice di copia di massa:

 private void SqlbulkCopy(DataTable dt)
    {

        if (dt.Rows.Count > 0)
        {
            string consString = ConfigurationManager.ConnectionStrings["Bulkcopy"].ConnectionString;
            using (SqlConnection con = new SqlConnection(consString))
            {
                using (SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(con))
                {

                    sqlBulkCopy.DestinationTableName = "dbo.leads";

                   sqlBulkCopy.ColumnMappings.Add(dt.Columns[0].ToString(), "Name");
                sqlBulkCopy.ColumnMappings.Add(dt.Columns[1].ToString(), "Type");
                sqlBulkCopy.ColumnMappings.Add(dt.Columns[2].ToString(), "Emaily");
                sqlBulkCopy.ColumnMappings.Add(dt.Columns[3].ToString(), "EmailSecondary");
                sqlBulkCopy.ColumnMappings.Add(dt.Columns[4].ToString(), "Address");

                    con.Open();
                    sqlBulkCopy.WriteToServer(dt);
                    con.Close();
                }
            }
        }
    }

È possibile aggiungere i miei dati in ogni riga mentre viene chiamato questo metodo? Per esempio:

sqlcommand1.Parameters.Add("@secret", SqlDbType.NVarChar).Value = txtsecret.Text.Trim();

Come aggiungo questo tipo di codice inserto? E i dati di questo codice di inserimento verranno aggiunti a ogni riga che viene archiviata nel database.

Provato:

foreach (DataRow row in dt.Rows)
{
    sqlcommand1.Parameters.Add("@secret", SqlDbType.NVarChar).Value = txtsecret.Text.Trim();

    sSql= "Insert into details(secret) ";
    sSql+= " values(@secret)";

    sSqlCmd.CommandText = sSql;
    Conn.DBParaQuery(sSql, sqlcommand1);
}

Ho provato il ciclo foreach ma i dati vengono salvati in file null nel database senza il nome e roba solo con i secretani

risultati (nel database):

    (secret)        (name)  (type) (email) (2ndemail)(address)
    secreetans      NULL    Null    NULL    NULL      NULL  
    NULL    qwwer   n   1@mail.com  2@mail.com         hi   
    ^^^
 i nid this null to be secretans 

Risposta popolare

Dubito che sia possibile.

Secondo MSDN

Mentre è in corso l'operazione di copia bulk, la destinazione associata SqlConnection è occupata a servirlo e non è possibile eseguire altre operazioni sulla connessione .



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché