Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RainMaker

comando DELETE

Recommended Posts

tenho aki o seguinte codigo

 

public static void Deletar(string A)		{			//Determina string de conexão						StringBuilder Deletar = new StringBuilder("DELETE FROM REGISTRO WHERE CODIGO=????");			string strConexao = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=G:\\Sistemas\\C#\\cadastro2\\cadastro1\\cadastro1\\index.mdb";						//Instancia Objeto de conexão			OleDbConnection objConexao = new OleDbConnection(strConexao);						//Instancia Objeto de comando com parâmetro			OleDbCommand objComando = new OleDbCommand(Deletar.ToString(), objConexao);						objConexao.Open();			objComando.ExecuteNonQuery();				   			objConexao.Close();			MessageBox.Show("Registro excluido com Sucesso!");		}	}}
eu qro fazer o seguinte, o parametro "string A" recebe o texto de uma textbox no meu programa principal, soh q eu nao estou sabendo como eu posso fazer para q o registro deletado seja esse A, como eu posso colocar uma variavel na string de DELETE ali?!

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

StringBuilder Deletar = new StringBuilder("DELETE FROM REGISTRO WHERE CODIGO="& A);

tentei fazer isso...mas aparece q o operador & nao pode ser usado com string nem int oO

Compartilhar este post


Link para o post
Compartilhar em outros sites

StringBuilder Deletar = new StringBuilder("DELETE FROM REGISTRO WHERE CODIGO="& A);

tentei fazer isso...mas aparece q o operador & nao pode ser usado com string nem int oO
em C# o operador de concatenação é o +
StringBuilder Deletar = new StringBuilder("DELETE FROM REGISTRO WHERE CODIGO='" + A + "'");
se A fosse INT, dai era só usar a propriedade .ToString()
StringBuilder Deletar = new StringBuilder("DELETE FROM REGISTRO WHERE CODIGO='" + A.ToString() + "'");
ou então como você esta usando StringBuilder você poderia usar o método Append
StringBuilder Deletar = new StringBuilder("DELETE FROM REGISTRO WHERE CODIGO='" + A.ToString() + "'");			Deletar.Append(A.ToString());			Deletar.Append("'");
...porém, concatenando desta forma, tu corre riscos de SQL Injection, veja esse post sobre o SQL Injection : http://forum.imasters.com.br/index.php?showtopic=229310 o post esta no forum de SQL Server, porem o SQL Injection pode ser aplicado em qualquer banco de dadospara contonar isto você pode usar parâmetros, dai só mudaria isso:no comando SQL você definiria os parâmetros, em SQL server é com @ (arroba), access acredito que seja @ (arroba) tb., mysql é com ? (interrogação)exemplo, abaixo definimos o parâmetro código como "@CODIGO":
StringBuilder Deletar = new StringBuilder("DELETE FROM REGISTRO WHERE CODIGO=@CODIGO");
depois é só adicionar os parametros:
OleDbCommand objComando = new OleDbCommand(Deletar.ToString(), objConexao);			objComando.Parameters.Add(new Parameter("@CODIGO", TypeCode.Char, A)); //<--Parametros			objConexao.Open();			objComando.ExecuteNonQuery();			objConexao.Close();
t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.