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
:
Adicione novos registros ao DataTable desejado criando um novo DataRow e adicionando-o à coleção Rows.
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 tabelaRegion
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
,CommandType
eCommandText
.
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();