Usuário com melhor resposta
Insert para mais de 1 registro

Pergunta
-
Alguém tem alguma sugestão para o seguinte problema com Insert?
se escolher a opção 1 tenho uma data de pagto (lblDataPgto1) e consequentemente um registro, agora se escolher outras opção de um RadioButtonList terei mais de uma data de pagto então terei mais de um registro que varia até 6. Abaixo o comando VB:
Protected Sub rblQuantasVezes_SelectedIndexChanged(sender As Object, e As EventArgs) Handles rblQuantasVezes.SelectedIndexChanged
If rblQuantasVezes.Text = "1" Then
lblDataPgto1.Visible = True
lblDataPgto2.Visible = False
lblDataPgto3.Visible = False
lblDataPgto4.Visible = False
lblDataPgto5.Visible = False
lblDataPgto6.Visible = False
ElseIf rblQuantasVezes.Text = "2" Then
lblDataPgto1.Visible = True
lblDataPgto2.Visible = True
lblDataPgto3.Visible = False
lblDataPgto4.Visible = False
lblDataPgto5.Visible = False
lblDataPgto6.Visible = False
ElseIf rblQuantasVezes.Text = "3" Then
lblDataPgto1.Visible = True
lblDataPgto2.Visible = True
lblDataPgto3.Visible = True
lblDataPgto4.Visible = False
lblDataPgto5.Visible = False
lblDataPgto6.Visible = False
ElseIf rblQuantasVezes.Text = "4" Then
lblDataPgto1.Visible = True
lblDataPgto2.Visible = True
lblDataPgto3.Visible = True
lblDataPgto4.Visible = True
lblDataPgto5.Visible = False
lblDataPgto6.Visible = False
ElseIf rblQuantasVezes.Text = "5" Then
lblDataPgto1.Visible = True
lblDataPgto2.Visible = True
lblDataPgto3.Visible = True
lblDataPgto4.Visible = True
lblDataPgto5.Visible = True
lblDataPgto6.Visible = False
ElseIf rblQuantasVezes.Text = "6" Then
lblDataPgto1.Visible = True
lblDataPgto2.Visible = True
lblDataPgto3.Visible = True
lblDataPgto4.Visible = True
lblDataPgto5.Visible = True
lblDataPgto6.Visible = True
End If
End Sub
Private Sub inserir()Dim conecte As New OleDbConnection
conecte.ConnectionString = My.Settings.SIADSConecte
Try
conecte.Open()
Catch ex As System.Data.OleDb.OleDbException
Label3.Text = "Erro de conexao com o Banco de Dados: " & ex.Message.ToString
Return
End Try
Dim selcom As New System.Data.OleDb.OleDbCommand
selcom.Connection = conecte
selcom.CommandText = "INSERT INTO tb_Finan_Lancamentos (cod_Pl,cod_Origem,data_Lanc,data_Pagto,valor1,valor2,valor3,cod_Destino,historico)" & _
" VALUES(@cod_PlanoContasResumo,@cod_Origem,@data_Lancamento,@data_Pagto,@valor_Receita_Corrente,@valor_Despesa_Corrente,@valor_Aplicacao,@cod_Destino,@historico)"
selcom.Parameters.Clear()
selcom.Parameters.Add("@cod_Pl", OleDbType.Integer).Value = Convert.ToInt32(rblLanc.SelectedValue)
selcom.Parameters.Add("@cod_Origem", OleDbType.Integer).Value = Convert.ToInt32(ddlFormaPagto.SelectedValue)
Dim data_Lanc As DateTime
data_Lanc = Convert.ToDateTime(txtDataDespesa.Text)
selcom.Parameters.Add(New OleDbParameter("@data_Lanc", data_Lanc))
Dim data_Pagto As DateTime
data_Pagto = Convert.ToDateTime(lblDataPgto1.Text)
selcom.Parameters.Add(New OleDbParameter("@dataNascPac", data_Pagto))
selcom.Parameters.Add("@valor1", OleDbType.Currency).Value = String.Format("{0:c}", Val(txtValor1.Text.Replace(",", ",")))
selcom.Parameters.Add("@valor2", OleDbType.Currency).Value = String.Format("{0:c}", Val(txtValor2.Text.Replace(",", ",")))
selcom.Parameters.Add("@valor3", OleDbType.Currency).Value = String.Format("{0:c}", Val(txtValor3.Text.Replace(",", ",")))
selcom.Parameters.Add("@cod_Destino", OleDbType.Integer).Value = Convert.ToInt32(ddlDestinoDespesa.SelectedValue)
selcom.Parameters.Add("@historico", OleDbType.WChar).Value = txtHistoricoDespesa.TextDim teste As Boolean
Try
teste = selcom.ExecuteNonQuery
Catch ex As System.Data.OleDb.OleDbException
Label5.Text = "Erro: " & ex.Message.ToString
Return
End Try
conecte.Close()
Label4.Text = "Registro inserido e gravado"
ddlFormaPagto.Focus()
cargaGrid()
End Sub
Respostas
-
Olá Wilson
Pelo que entendi seria mais ou menos como gerar parcelas à pagar, correto?
No link abaixo tem um exemplo de como gerar parcelas e adicioná-las em um datagridview usando laço FOR, dê uma olhada e adapte a sua necessidade, com certeza irá otimizar muito o seu código.
http://www.portugal-a-programar.pt/topic/46471-gerar-parcelas-em-data-grid/
Att.,
Jeimes
"Caso a resposta seja útil, marque como resposta."
- Marcado como Resposta Wilson Boris segunda-feira, 8 de outubro de 2012 13:46
Todas as Respostas
-
Para de repetir teu post.
- Editado Levi DomingosModerator domingo, 7 de outubro de 2012 21:46 chamar posto
-
qual e o teu problema?
so existe uma problema no teu codigo, voce a abre a conecao depois diz que se existir erro mostar. certo. depois tem codigo, ele vai executar este codigo....
Eu nao uso muito vb, mais esta mal a tua logica...
http://malange-levi.blogspot.co.uk/
-
Malange - Levi,
também não entendi a sua dúvida. Desculpe-me se não fui claro.
Acredito ser simples o meu problema, apenas ainda não me deparei com esta situação com um Insert para mais de um registro.
Pense em inserir uma compra com um cartão de crédito pago em mais de 1 parcela, onde ele retorna com a data das parcelas em label(s).
Observe que com um radiobutonlist eu faço a escolha do número de parcelas.
O código do Insert tem um erro, altere-se de:
selcom.Parameters.Add(New OleDbParameter("@dataNascPac", data_Pagto))
Para:
selcom.Parameters.Add(New OleDbParameter("@data_Pagto", data_Pagto))
-
Malange - Levi,
também não entendi a sua dúvida. Desculpe-me se não fui claro.
Acredito ser simples o meu problema, apenas ainda não me deparei com esta situação com um Insert para mais de um registro.
Pense em inserir uma compra com um cartão de crédito pago em mais de 1 parcela, onde ele retorna com a data das parcelas em label(s).
Observe que com um radiobutonlist eu faço a escolha do número de parcelas.
O código do Insert tem um erro, altere-se de:
selcom.Parameters.Add(New OleDbParameter("@dataNascPac", data_Pagto))
Para:
selcom.Parameters.Add(New OleDbParameter("@data_Pagto", data_Pagto))
Há alguma sugestão para postar mais adequadamente a duvida VB?
Qual a lógica adequada para estes casos? seria uma situação para criar juntamente If ElseIf EndIf com uma Sub para cada parcela com um Insert?- Editado Wilson Boris segunda-feira, 8 de outubro de 2012 10:36 complemento
-
Olá Wilson
Pelo que entendi seria mais ou menos como gerar parcelas à pagar, correto?
No link abaixo tem um exemplo de como gerar parcelas e adicioná-las em um datagridview usando laço FOR, dê uma olhada e adapte a sua necessidade, com certeza irá otimizar muito o seu código.
http://www.portugal-a-programar.pt/topic/46471-gerar-parcelas-em-data-grid/
Att.,
Jeimes
"Caso a resposta seja útil, marque como resposta."
- Marcado como Resposta Wilson Boris segunda-feira, 8 de outubro de 2012 13:46
-