Partilhar via


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

Para inserir novos registros em um banco de dados com ADO.NET em um projeto do .NET Framework, a abordagem comum é usar métodos TableAdapter. TableAdapters fornecem comunicação entre seu aplicativo e um banco de dados. Eles fornecem diferentes maneiras de inserir novos registros em um banco de dados, dependendo dos requisitos do seu aplicativo. Você pode usar o método TableAdapter.Update ou um dos métodos TableAdapter DBDirect (especificamente, o método TableAdapter.Insert).

Este artigo descreve como inserir registros em um banco de dados para um aplicativo criado com o ADO.NET e o .NET Framework usando o Visual Basic (VB) ou o C#. Se a configuração do aplicativo usar o Entity Framework 6, consulte Adicionando uma nova entidade ao contexto ou, para o Entity Framework Core, consulte Adicionando dados.

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. As tecnologias 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.

Pré-requisitos

  • Para trabalhar com métodos TableAdapter, você precisa ter uma instância disponível. Para obter mais informações, consulte Criar e configurar TableAdapters em aplicativos .NET Framework.

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

Escolha o método de inserção

Há diferentes abordagens para inserir registros em um banco de dados com base no cenário do aplicativo. A tabela a seguir resume as opções:

Cenário Abordagem Observações
O aplicativo usa conjuntos de dados para armazenar dados Use o método TableAdapter.Update para enviar todas as alterações para o banco de dados As alterações incluem atualizações, inserções e exclusões.
O aplicativo usa objetos para armazenar dados Use o método TableAdapter.Insert para inserir novos registros no banco de dados Essa abordagem permite que você tenha um controle mais preciso sobre a criação de novos registros.
O aplicativo usa TableAdapters, método Insert não disponível Defina a propriedade TableAdapter GenerateDBDirectMethods como true de dentro do Designer de Conjunto de Dados e salve o conjunto de dados para regenerar o TableAdapter Se o TableAdapter não tiver um método Insert, o TableAdapter será configurado para usar procedimentos armazenados ou a propriedade GenerateDBDirectMethods será definida como false.
Se o método Insert permanecer indisponível após a regeneração do TableAdapter, a tabela provavelmente não fornecerá informações de esquema suficientes para distinguir entre linhas individuais (por exemplo, pode não haver nenhuma chave primária definida na tabela).
O aplicativo não usa TableAdapters Usar objetos de comando para inserir novos registros no banco de dados Exemplo: SqlCommand

Inserir novos registros usando TableAdapters

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.

Inserir novos registros com o método TableAdapter.Update

O procedimento a seguir demonstra como 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 de adicionar as novas linhas ao DataTable, chame o método TableAdapter.Update. Você pode controlar a quantidade de dados a serem atualizados passando um dos seguintes valores de parâmetro:

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

Inserir novos registros com 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. Quando você chama o método, um novo registro é inserido no banco de dados com os valores de parâmetro passados.

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

O procedimento a seguir demonstra como usar o 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, instancie o TableAdapter que deseja usar.

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

regionTableAdapter.Insert(5, "NorthWestern");

Inserir novos registros com objetos de comando

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

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

O procedimento a seguir demonstra como inserir registros em um banco de dados usando o objeto de comando. 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();