amanda12 0 Denunciar post Postado Fevereiro 17, 2009 Pessoal to usando um metodo que aprendi aki mas não está dando certo no insert veja public partial class Form1 : Form { SqlConnection Conn; SqlCommand Comm; SqlDataAdapter DtAdapter; SqlDataReader DtReader; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { string a1 = "bbb"; string b2 = "ccc"; Conn = new SqlConnection("Data Source=CPD06;Initial Catalog=Northwind;Integrated Security=True"); Conn.Open(); label2.Text = Conn.State.ToString(); //Comm = new SqlCommand("Select LastName from Employees", Conn); string sql = string.format("INSERT INTO Employees (LastName,FirstName) VALUES('{0}','{1}'", a1, b2); Comm.ExecuteNonQuery(); //DtReader = Comm.ExecuteReader(); /*while(DtReader.Read()) { label3.Text = DtReader[0]+"\n"; }*/ //DtReader.Close(); Conn.Close(); } } Como posso fazer esse insert? Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Fevereiro 17, 2009 string sql = string.format("INSERT INTO Employees (LastName,FirstName) VALUES('{0}','{1}'", a1, b2); Comm = new SqlCommand(sql, Conn); Comm.ExecuteNonQuery(); Faltou setar o comando SQL no Command. Quando ocorrer esse tipo de situação, coloque a linha que deu erro e qual a mensagem de erro, facilita :D Att, Guilherme Oenning. Compartilhar este post Link para o post Compartilhar em outros sites
amanda12 0 Denunciar post Postado Fevereiro 17, 2009 guilherme brigada agora deu certinho valew Compartilhar este post Link para o post Compartilhar em outros sites
Flavio Tajiri 0 Denunciar post Postado Fevereiro 17, 2009 Uma boa prática ao construir comandos sql é prepará-los antes de executar para evitar possíveis ataques ao banco de dados: (o método AddWithValue é suportado a partir do Framework 2.0) using (SqlConnection connection = new SqlConnection ("Data Source=CPD06;Initial Catalog=Northwind;Integrated Security=True")) { connection.Open(); using (SqlCommand command = new SqlCommand("INSERT INTO Employees (LastName,FirstName) VALUES(@a1, @a2)")) { // Preparar os parâmetros antes de executar o comando evita possíveis ataques ao banco de dados command.Parameters.AddWithValue("@a1", a1); command.Parameters.AddWithValue("@a2", a2); command.ExecuteNonQuery(); } connection.Close(); } É um método mais burocrático porém menos trabalhoso e menos confuso do que manipulação de strings. Esse é o melhor método que conheço para se inserir valores ao banco com segurança. Usar "using" também é sempre uma boa opção para ter certeza que os comandos que necessitam ser destruídos sejam despejados da memória após o uso. Espero que tenha ajudado em algo. Compartilhar este post Link para o post Compartilhar em outros sites
amanda12 0 Denunciar post Postado Fevereiro 17, 2009 Flávio eu fiz assim: public partial class Form1 : Form { SqlConnection Conn; SqlCommand Comm; /*SqlDataAdapter DtAdapter; SqlDataReader DtReader;*/ public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { /* SqlDataAdapter da = new SqlDataAdapter ("select * from Employee",Conn); DataSet ds = new DataSet(); da.Fill(ds); string campo; foreach(DataRow linha in ds.Tables[0]) { campo = linha["LastName"].ToString(); } */ using (SqlConnection connection = new SqlConnection("Data Source=CPD06;Initial Catalog=Northwind;Integrated Security=True")) { connection.Open(); string a1 = "sdfsf"; string a2 = "qeqwe"; using (SqlCommand command = new SqlCommand("INSERT INTO Employees (LastName,FirstName) VALUES(@a1, @a2)")) { // Preparar os parâmetros antes de executar o comando evita possíveis ataques ao banco de dados command.Parameters.AddWithValue("@a1", a1); command.Parameters.AddWithValue("@a2", a2); Comm.ExecuteNonQuery(); } connection.Close(); } } } e dá erro no Comm.ExecuteNonQuery(); PQ? Compartilhar este post Link para o post Compartilhar em outros sites
Flavio Tajiri 0 Denunciar post Postado Fevereiro 17, 2009 você digitou Comm.ExecuteNonQuery(); o certo nesse bloco é command.ExecuteNonQuery(); Compartilhar este post Link para o post Compartilhar em outros sites
amanda12 0 Denunciar post Postado Fevereiro 17, 2009 Refiz o seu exemplo e coloquei assim; using (SqlConnection connection = new SqlConnection("Data Source=CPD06;Initial Catalog=Northwind;Integrated Security=True")) { connection.Open(); string a1 = "ddd"; string a2 = "ççl"; using (SqlCommand command = new SqlCommand("INSERT INTO Employees (LastName,FirstName) VALUES(@a1, @a2)")) { // Preparar os parâmetros antes de executar o comando evita possíveis ataques ao banco de dados command.Parameters.AddWithValue("@a1", a1); command.Parameters.AddWithValue("@a2", a2); command.ExecuteNonQuery(); } connection.Close(); } Ai ele retorna o erro assim: ExecuteNonQuery: Connection property has not been initialized. Compartilhar este post Link para o post Compartilhar em outros sites
Flavio Tajiri 0 Denunciar post Postado Fevereiro 17, 2009 Perdão pelo erro, Faltou a conexão "connection" ao instanciar o SqlCommand Depois de VALUES(@a1, @a2) using (SqlCommand command = new SqlCommand("INSERT INTO Employees (LastName,FirstName) VALUES(@a1, @a2)", connection)) Falha minha, desculpe... XP Compartilhar este post Link para o post Compartilhar em outros sites
amanda12 0 Denunciar post Postado Fevereiro 17, 2009 caraca certim flávio!!!! putz! valew... mas aki sem querer abusar tem como você me dar uma forcinha no novo topico que abri??? me ajuda nessa vai... depois que eu pegar os conceito eu caminho sozinha. =) Compartilhar este post Link para o post Compartilhar em outros sites
ThaisRibeiro 0 Denunciar post Postado Fevereiro 8, 2012 Olá bom dia, o meu código também nao funciona.. diz que nao foi inicializado... o que fazer? Private Sub salvar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles salvar.Click Dim insert = "insert into Cliente (Cli_nome, Cli_endereco, Cli_telefone, Cli_bairro, Cli_cidade, Cli_cpf, Cli_complemento) values (" Dim campos = "'" & name2.Text & "','" & endereco2.Text & "','" & telefone2.Text & "','" & bairro2.Text & "','" & cidade2.Text & "','" & cpf2.Text & "','" & complemento2.Text & "')" Dim comando = insert & campos Dim conexao As SqlConnection conexao = New SqlConnection("Data Source=xxx;Initial Catalog=Thais;User ID=xxx;Password=xxx;MultipleActiveResultSets=True;") Dim sql As New SqlCommand sql.CommandText = comando conexao.Open() Dim linhas = sql.ExecuteNonQuery() conexao.Close() End Sub Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites