I. Visão geral
-
Para usar a classe DataSet para atualizar os dados no banco de dados em linguagem C #, você também precisa usar a classe SqlCommandBuilder no namespace System.Data.SqlClient para gerar automaticamente os métodos de adição, modificação e exclusão do objeto SqlDataAdapter
-
Quando usado em conjunto com a classe SqlDataAdapter, você só precisa usar o objeto SqlDataAdapter como um parâmetro ao criar uma instância da classe SqlCommandBuilder. A sintaxe é a seguinte:
SqlCommandBuilder nome do objeto = novo SqlCommandBuilder (objeto da classe SqlDataAdapter);
<! - mais ->
Dois exemplos
Os exemplos a seguir demonstram como usar o DataSet para atualizar o banco de dados
2.1 Exemplo 1: Use DataSet para realizar a função de registro do usuário
2.1.1 Layout da interface
2.1.2 Código
// Registrar evento de clique de botão private void button1_Click (object sender, EventArgs e) { // Database connection string connStr = "Data Source = .; Initial Catalog = test; User ID = sa; Password = root"; // Crie uma instância de SQLConnection SqlConnection conn = null; try { conn = new SqlConnection (connStr); // Abra a conexão de banco de dados conn.Open (); string sql = "select * from userinfo"; // Crie um objeto da classe SqlDataAdapter SqlDataAdapter sda = new SqlDataAdapter (sql, conn); // Cria um objeto da classe DataSet DataSet ds = new DataSet (); // Use o objeto SQLDataAdapter sda para preencher os resultados da consulta no objeto DataTable ds sda.Fill (ds); // Crie um objeto da classe SqlCommandBuilder SqlCommandBuilder cmdBuilder = new SqlCommandBuilder (sda); // Crie um objeto da classe DataRow DataRow dr = ds.Tables [0] .NewRow (); // Defina o valor da coluna de nome dr ["name"] = textBox1.Text; // Defina o valor da coluna de senha dr ["password"] = textBox2.Text; // Adicione uma linha ao objeto DataTable ds.Tables [0] .Rows.Add (dr); // Atualize o banco de dados sda.Update (ds); MessageBox .Show ("Registro com êxito!"); } Catch (Exceção ex) { MessageBox.Show ("Registro falhou!" + Ex.Message); } finally { if (conn! = Null) conn.Perto();= null) { // Feche a conexão do banco de dados } } }
2.1.3 Imagem de efeito
2.1.4 Descrição
Execute o formulário, insira o nome de usuário e a senha e clique no botão "registrar" para adicionar as informações do usuário à tabela de dados
Substituir a classe DataSet no código acima pela classe DataTable também pode realizar a mesma função e pode simplificar o código
Use a classe DataTable para completar as funções acima e substitua o DataSet por DataTable. Parte do código é a seguinte
// Cria um objeto da classe DataTable DataTable dt = new DataTable (); // Use o objeto SqlDataAdapter sda para preencher os resultados da consulta no objeto DataTable dt sda.Fill (dt); // Crie um objeto da classe SqlCommandBuilder SqlCommandBuilder cmdBuilderBuilder = new SqlCommander ( sda); // Cria um objeto da classe DataRow DataRow dr = dt.NewRow (); // Define o valor da coluna de nome dr ["name"] = txtName.Text; // Define o valor da coluna de senha dr ["password"] = txtPwd.Text; // Adicionar uma linha ao objeto DataTable dt.Rows.Add (dr); // Atualizar o banco de dados sda.Update (dt)
2.2 Exemplo 2 Use DataSet para realizar a função de alterar a senha do usuário
2.2.1 Layout da interface
2.2.2 Código de função
// Confirmar evento clique no botão private void button1_Click (object sender, EventArgs e) { // Database connection string connStr = "Data Source = .; Initial Catalog = test; User ID = sa; Password = root"; // Crie uma instância de SQLConnection SqlConnection conn = null; try { conn = new SqlConnection (connStr); // Abra a conexão de banco de dados conn.Open (); string sql = "select * from userinfo where name = '{0}' and password = ' {1} '"; // Preencha a instrução SQL sql = string.Format (sql, textBox1.Text, textBox2.Text); // Crie um objeto da classe SqlDataAdapter SqlDataAdapter sda = new SqlDataAdapter (sql, conn); // Crie um DataSet Objeto de classe DataSet ds = new DataSet (); // Use o objeto SQLDataAdapter sda para preencher os resultados da consulta no objeto DataTable ds sda.Fill (ds); if (ds.Tables [0] .Rows.Count == 1) { // Julgamento A nova senha não pode estar vazia, e é considerado que as duas senhas inseridas são consistentes se (! "". Equals (textBox3.Text) && textBox3.Text.Equals (textBox4.Text)) { // Criar um objeto da classe SqlCommandBuilder SqlCommandBuilder cmdBuilder = new SqlCommandBuilder (sda); // Cria um objeto da classe DataRow DataRow dr = ds.Tables [0] .Rows [0]; // Defina o valor da coluna de senha dr ["password"] = textBox3.Text; // Atualize o banco de dados sda .Update (ds); // atualizar os dados no objeto DataSet ds.Tables [0] .AcceptChanges (); MessageBox.Show ( "Senha alterada com sucesso!"); } Else { MessageBox.Show ( "A nova senha está vazio ou as senhas digitadas em ambos os lados são inconsistentes ! "); } } } catch (Exceção ex) { MessageBox.Show (" Modificação de senha falhou! "+ ex.Message); } finally { if (conn! = null) { // Fechar a conexão de banco de dados conn.Close () ; } } }
2.2.3 Imagem de efeito
2.2.4 Descrição
Pode ser visto pelo efeito de execução acima que a senha foi modificada com sucesso, e os dados na tabela de informações do usuário (userinfo) também podem ser verificados no banco de dados para verificar se a senha foi modificada
Se você precisar excluir os dados da tabela de dados por meio do DataSet, use o código a seguir.
// Exclua a linha especificada na DataTable, ds representa o objeto DataSet ds.Tables [0] .Rows [número de linhas] .Delete (); // Atualize o banco de dados, sda representa o objeto SqlDataAdapter sda.Update (ds); // Atualize o DataSet Os dados no objeto ds.Tables [0] .AcceptChanges ();