Inserir novos registros em um banco de dados em aplicativos do .NET Framework

Observação

Os conjuntos de dados e as classes relacionadas são tecnologias herdadas do .NET Framework do início dos anos 2000 que permitem que os aplicativos trabalhem com dados na memória enquanto os aplicativos estão desconectados do banco de dados. Eles são bastante úteis em aplicativos que permitem que os usuários modifiquem dados e persistam as alterações no banco de dados. Embora os conjuntos de dados tenham se mostrado uma tecnologia muito bem-sucedida, é recomendado que os novos aplicativos .NET usem o Entity Framework Core. O Entity Framework proporciona uma forma mais natural de trabalhar com dados tabulares como modelos de objeto e conta com uma interface de programação mais simples.

Para inserir novos registros em um banco de dados com o ADO.NET em um projeto .NET Framework, você pode usar o método TableAdapter.Update ou um dos métodos DBDirect do TableAdapter (especificamente o método TableAdapter.Insert). Para obter mais informações, confira TableAdapter.

Se o aplicativo não usar TableAdapters, você poderá usar objetos de comando (por exemplo, SqlCommand) para inserir novos registros em seu banco de dados.

Se o aplicativo usar conjuntos de dados para armazenar dados, use o método TableAdapter.Update. O métodoUpdate envia todas as alterações (atualizações, inserções e exclusões) para o banco de dados.

Se o aplicativo usar objetos para armazenar dados ou se você quiser ter um controle mais preciso sobre a criação de novos registros no banco de dados, use o método TableAdapter.Insert.

Se o TableAdapter não tiver um método Insert, isso significa que o TableAdapter está configurado para usar procedimentos armazenados ou sua propriedade GenerateDBDirectMethods será definida como false. Tente definir a propriedade GenerateDBDirectMethods do TableAdapter como true de dentro do Designer de Conjunto de Dados e salve o conjunto de dados. Essa ação regenera o TableAdapter. Se o TableAdapter ainda não tiver um método Insert, a tabela provavelmente não fornecerá informações de esquema suficientes para distinguir entre linhas individuais (por exemplo, pode não haver nenhum conjunto de chaves primária na tabela).

Observação

Este artigo se aplica ao desenvolvimento do ADO.NET e do .NET Framework. Para obter a mesma tarefa com o Entity Framework 6, consulte Adicionando uma nova entidade ao contexto. Para o Entity Framework Core, consulte Adicionando dados.

Inserir novos registros usando TableAdapters

Os TableAdapters fornecem diferentes maneiras de inserir novos registros em um banco de dados, dependendo dos requisitos de seu aplicativo.

Se o seu aplicativo usar conjuntos de dados para armazenar dados, você pode adicionar novos registros ao DataTable desejado no conjunto de dados e, em seguida, chamar o método TableAdapter.Update. O método TableAdapter.Update envia quaisquer alterações no DataTable para o banco de dados (incluindo registros modificados e excluídos).

Para inserir novos registros em um banco de dados usando o método TableAdapter.Update

  1. Adicione novos registros ao DataTable desejado criando um novo DataRow e adicionando-o à coleção Rows.

  2. Depois que as novas linhas forem adicionadas ao DataTable, chame o método TableAdapter.Update. Você pode controlar a quantidade de dados a serem atualizados passando um DataSet inteiro, um DataTable, uma matriz de DataRows ou um único DataRow.

    O código a seguir mostra como adicionar um novo registro a um DataTable e, em seguida, chamar o método TableAdapter.Update para salvar a nova linha no banco de dados. (Este exemplo usa a tabela Region no banco de dados Northwind.)

    // Create a new row.
    NorthwindDataSet.RegionRow newRegionRow;
    newRegionRow = northwindDataSet.Region.NewRegionRow();
    newRegionRow.RegionID = 5;
    newRegionRow.RegionDescription = "NorthWestern";
    
    // Add the row to the Region table
    this.northwindDataSet.Region.Rows.Add(newRegionRow);
    
    // Save the new row to the database
    this.regionTableAdapter.Update(this.northwindDataSet.Region);
    

Para inserir novos registros em um banco de dados usando o método TableAdapter.Insert

Se o aplicativo usar objetos para armazenar dados, você poderá usar o método TableAdapter.Insert para criar novas linhas diretamente no banco de dados. O método Insert aceita os valores individuais de cada coluna como parâmetros. Chamar o método insere um novo registro no banco de dados com os valores dos parâmetro passados.

  • Chame o método Insert do TableAdapter, passando os valores de cada coluna como parâmetros.

O procedimento a seguir demonstra o uso do método TableAdapter.Insert para inserir linhas. Este exemplo insere dados na tabela Region no banco de dados Northwind.

Observação

Se você não tiver uma instância disponível, crie uma instância do TableAdapter que deseja usar.

NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = 
    new NorthwindDataSetTableAdapters.RegionTableAdapter();

regionTableAdapter.Insert(5, "NorthWestern");

Inserir novos registros usando objetos de comando

Você pode inserir novos registros diretamente em um banco de dados usando objetos de comando.

Para inserir novos registros em um banco de dados usando objetos de comando

  • Crie um novo objeto de comando e defina suas propriedades Connection, CommandTypee CommandText.

O exemplo a seguir demonstra a inserção de registros em um banco de dados usando o objeto command. Este exemplo insere dados na tabela Region no banco de dados Northwind.

System.Data.SqlClient.SqlConnection sqlConnection1 = 
    new System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING");

System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "INSERT Region (RegionID, RegionDescription) VALUES (5, 'NorthWestern')";
cmd.Connection = sqlConnection1;

sqlConnection1.Open();
cmd.ExecuteNonQuery();
sqlConnection1.Close();

Segurança do .NET

Você deve ter acesso ao banco de dados ao qual está tentando se conectar e a permissão para executar inserções na tabela desejada.