AprendizNovo Posted June 19, 2014 Report Share Posted June 19, 2014 Boas, sou novo em programação Como posso fazer uma consulta a base de dados sql server para verificar se já foi inserida aquela data. . inseri ficheiro de texto em datagrid, todos os dados são string .depois queria gravar na base de dados, mas antes queria consultar a base de dados para não repetir dados, este select é feito por dois parametros codigoVendedor + Data mas não estou a conseguir deixo aqui o código para ver se podem ajudar, obrigado Private Function SalvarItens() 'Connection string Const constr As String = "Data Source=CARLOS-PC\SQLEXPRESS;Initial Catalog=TesteAnalise;Integrated Security=True" ' Construção da classe SQLConnection Dim db As New SqlConnection(constr) Try 'Abertura da ligação db.Open() 'Dim Data As String 'Data = Format(Date, "dd-MM-yyyy") 'Dim query() = {"dd/MM/yyyy", "d/M/yyyy", "dd-MM-yyyy"} 'Dim query As String = "SELECT * FROM Movimentos WHERE codigoVendedor = " + DataGridView1.Rows(0).Cells("codigoVendedor").Value + " AND @Data = " + Date.ParseExact(DataGridView1.Rows(0).Cells("Data").Value, "yyyy-MM-dd", System.Globalization.DateTimeFormatInfo.InvariantInfo, Globalization.DateTimeStyles.None) + "" 'Dim cmd As New SqlCommand(query, db) 'If (cmd.ExecuteNonQuery() < 0) Then 'MessageBox.Show("Ola") 'End If For r As Integer = 0 To DataGridView1.Rows.Count - 1 Dim varsql As String 'Instrução sql varsql = "INSERT INTO Movimentos(codigoArtigo,quantidadeInvent,quantidadeReal,Confirmacao,codigoVendedor,Data) VALUES (@codigoArtigo,@quantidadeInvent,@quantidadeReal,@Confirmacao,@codigoVendedor,@Data)" ' Inserir dados na base de dados 'Construção da classe sqlcommand Dim cmd1 As New SqlCommand(varsql, db) ' cmd.Parameters.Add("@Id", SqlDbType.Int).Value = DataGridView1.Rows(0).Cells("Id").Value 'cmd1.Parameters.Add("@codigoVendedor", SqlDbType.Int).Value = DataGridView1.Rows®.Cells("codigoVendedor").Value cmd1.Parameters.Add("@codigoArtigo", SqlDbType.NVarChar).Value = DataGridView1.Rows®.Cells("codigoArtigo").Value cmd1.Parameters.Add("@quantidadeInvent", SqlDbType.Int).Value = DataGridView1.Rows®.Cells("quantidadeInvent").Value cmd1.Parameters.Add("@quantidadeReal", SqlDbType.Int).Value = DataGridView1.Rows®.Cells("quantidadeReal").Value cmd1.Parameters.Add("@Confirmacao", SqlDbType.Int).Value = DataGridView1.Rows®.Cells("Confirmacao").Value cmd1.Parameters.Add("@codigoVendedor", SqlDbType.Int).Value = DataGridView1.Rows®.Cells("codigoVendedor").Value cmd1.Parameters.Add("@Data", SqlDbType.Date).Value = DataGridView1.Rows®.Cells("Data").Value 'Execução do comando no servidor cmd1.ExecuteNonQuery() ' Se o resultado for menor do que um então obtemos um erro; 'If cmd1.ExecuteNonQuery() < 1 Then 'MessageBox.Show("Não foi possível actualizar o(s) registo(s)", "Actualizar", MessageBoxButtons.OK, MessageBoxIcon.Stop) 'End If Next 'End If Return True ' actualizados os registos; MessageBox.Show("Registo(s) actualizado(s) com sucesso", "Registos Actualizados", MessageBoxButtons.OK, MessageBoxIcon.Information) 'Return True Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical) Return False 'a conexão é fechada com ou sem sucesso Finally 'Fecho da ligação db.Close() End Try End Function Link to comment Share on other sites More sharing options...
AprendizNovo Posted July 14, 2014 Author Report Share Posted July 14, 2014 ninguém ajuda???? obrigado Link to comment Share on other sites More sharing options...
nelsonr Posted July 14, 2014 Report Share Posted July 14, 2014 Qual parte não funciona? Ali aquele select * from movimentos? Estás a comparar a variavel @data com a data especificada. Se o teu objecto é comparar o campo data, não uses a @ Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now