DATAGRIDVIEW

ROBFERREIRAA 15/07/2012 12:23:39
#406127
ola gente tudo bem? estou com um problema e gostaria de saber se alguem pode m ajudar ? estou tentando salvar varios dados incluidos em dgdatagrid e salva-los no click do botao mais ele me mostra que a coluna [Ô]cod_Produto nao pode ser encontrada[Ô] mais este é o nome dela alguem poderia me ajudar abraços

este o codigo do botao

For Each r As DataGridViewRow In Dg_Vendas.Rows
Try
Dim con As New SqlConnection([Ô]Data Source=.\sqlexpress;Initial Catalog=Academia.mdf;Integrated Security=True[Ô])
Dim SQL As String = [Ô]Insert into VendasProdutos ([Cod_Produto], [Descricao], [Nome_Cliente], [Quantidade], [Preco], [Desconto],[Total_Produtos]) values (@Cod_Produto, @Descricao,@Nome_Cliente, @Quantidade, @Preco, @Desconto, @Total_Produtos);[Ô]
Dim connection As New SqlConnection(strCon)
Dim command As New SqlCommand(SQL, connection)
command.Parameters.Add([Ô]@Cod_Produto[Ô], SqlDbType.Int).Value = r.Cells([Ô]Cod_Produto[Ô]).Value [ô] Le o valor da celula [ô]Nome[ô] da linha actual
command.Parameters.Add([Ô]@Descricao[Ô], SqlDbType.VarChar).Value = r.Cells([Ô]Descricao[Ô]).Value [ô] Le o valor da celula [ô]Idade[ô] da linha actual
command.Parameters.Add([Ô]@Nome_Cliente[Ô], SqlDbType.VarChar).Value = r.Cells([Ô]Nome_Cliente[Ô]).Value [ô] Le o valor da celula [ô]Nome[ô] da linha actual
command.Parameters.Add([Ô]@Quantidade[Ô], SqlDbType.Int).Value = r.Cells([Ô]Quantidade[Ô]).Value [ô] Le o valor da celula [ô]Nome[ô] da linha actual
command.Parameters.Add([Ô]@Preco[Ô], SqlDbType.VarChar).Value = r.Cells([Ô]Preco[Ô]).Value [ô] Le o valor da celula [ô]Morada[ô] da linha actual
command.Parameters.Add([Ô]@Desconto[Ô], SqlDbType.VarChar).Value = r.Cells([Ô]Desconto[Ô]).Value [ô] Le o valor da celula [ô]Nome[ô] da linha actual
command.Parameters.Add([Ô]@Total_Produtos[Ô], SqlDbType.VarChar).Value = r.Cells([Ô]Total_Produtos[Ô]).Value [ô] Le o valor da celula [ô]Idade[ô] da linha actual
connection.Open()
command.ExecuteScalar()
Dim x As Integer = command.ExecuteNonQuery()
If x < 1 Then
MessageBox.Show([Ô]A operação efectuada não retomou qualquer resultado.[Ô])
End If
connection.Close()
connection = Nothing
command = Nothing

Catch ex As Exception
MessageBox.Show([Ô]Erro [Ô] & ex.Message)
End Try
Next
ALTAIR148 15/07/2012 16:40:05
#406137
Resposta escolhida
Tente assim para ver se dá certo.


Try
With Dg_Vendas
for x = 0 to Dg_Vendas.rowcount - 1
Dim con As New SqlConnection([Ô]Data Source=.\sqlexpress;Initial Catalog=Academia.mdf;Integrated Security=True[Ô])
Dim SQL As String = [Ô]Insert into VendasProdutos ([Cod_Produto], [Descricao], [Nome_Cliente], [Quantidade], [Preco], [Desconto],[Total_Produtos]) values (@Cod_Produto, @Descricao,@Nome_Cliente, @Quantidade, @Preco, @Desconto, @Total_Produtos);[Ô]
Dim connection As New SqlConnection(strCon)
Dim command As New SqlCommand(SQL, connection)
command.Parameters.Add([Ô]@Cod_Produto[Ô], SqlDbType.Int).Value = .rows(x).Cells([Ô]Cod_Produto[Ô]).Value [ô] Le o valor da celula [ô]Nome[ô] da linha actual
command.Parameters.Add([Ô]@Descricao[Ô], SqlDbType.VarChar).Value = .rows(x).Cells([Ô]Descricao[Ô]).Value [ô] Le o valor da celula [ô]Idade[ô] da linha actual
command.Parameters.Add([Ô]@Nome_Cliente[Ô], SqlDbType.VarChar).Value = .rows(x).Cells([Ô]Nome_Cliente[Ô]).Value [ô] Le o valor da celula [ô]Nome[ô] da linha actual
command.Parameters.Add([Ô]@Quantidade[Ô], SqlDbType.Int).Value = .rows(x).Cells([Ô]Quantidade[Ô]).Value [ô] Le o valor da celula [ô]Nome[ô] da linha actual
command.Parameters.Add([Ô]@Preco[Ô], SqlDbType.VarChar).Value = .rows(x).Cells([Ô]Preco[Ô]).Value [ô] Le o valor da celula [ô]Morada[ô] da linha actual
command.Parameters.Add([Ô]@Desconto[Ô], SqlDbType.VarChar).Value = .rows(x).Cells([Ô]Desconto[Ô]).Value [ô] Le o valor da celula [ô]Nome[ô] da linha actual
command.Parameters.Add([Ô]@Total_Produtos[Ô], SqlDbType.VarChar).Value = .rows(x).Cells([Ô]Total_Produtos[Ô]).Value [ô] Le o valor da celula [ô]Idade[ô] da linha actual
connection.Open()
command.ExecuteScalar()
Dim x As Integer = command.ExecuteNonQuery()
If x < 1 Then
MessageBox.Show([Ô]A operação efectuada não retomou qualquer resultado.[Ô])
End If
next
connection.Close()
connection = Nothing
command = Nothing

Catch ex As Exception
MessageBox.Show([Ô]Erro [Ô] & ex.Message)
End Try

ROBFERREIRAA 15/07/2012 23:00:25
#406151
ola altair esta dando erro nestas linhas

Try
With Dg_Vendas
For x = 0 To Dg_Vendas.RowCount - 1
Dim con As New SqlConnection([Ô]Data Source=.\sqlexpress;Initial Catalog=Academia.mdf;Integrated Security=True[Ô])
Dim SQL As String = [Ô]Insert into VendasProdutos ([Cod_Produto], [Descricao], [Nome_Cliente], [Quantidade], [Preco], [Desconto],[Total_Produtos]) values (@Cod_Produto, @Descricao,@Nome_Cliente, @Quantidade, @Preco, @Desconto, @Total_Produtos);[Ô]
Dim connection As New SqlConnection(strCon)
Dim command As New SqlCommand(SQL, connection)
command.Parameters.Add([Ô]@Cod_Produto[Ô], SqlDbType.Int).Value = .Rows(x).Cells([Ô]Cod_Produto[Ô]).Value [ô] Le o valor da celula [ô]Nome[ô] da linha actual
command.Parameters.Add([Ô]@Descricao[Ô], SqlDbType.VarChar).Value = .Rows(x).Cells([Ô]Descricao[Ô]).Value [ô] Le o valor da celula [ô]Idade[ô] da linha actual
command.Parameters.Add([Ô]@Nome_Cliente[Ô], SqlDbType.VarChar).Value = .Rows(x).Cells([Ô]Nome_Cliente[Ô]).Value [ô] Le o valor da celula [ô]Nome[ô] da linha actual
command.Parameters.Add([Ô]@Quantidade[Ô], SqlDbType.Int).Value = .Rows(x).Cells([Ô]Quantidade[Ô]).Value [ô] Le o valor da celula [ô]Nome[ô] da linha actual
command.Parameters.Add([Ô]@Preco[Ô], SqlDbType.VarChar).Value = .Rows(x).Cells([Ô]Preco[Ô]).Value [ô] Le o valor da celula [ô]Morada[ô] da linha actual
command.Parameters.Add([Ô]@Desconto[Ô], SqlDbType.VarChar).Value = .Rows(x).Cells([Ô]Desconto[Ô]).Value [ô] Le o valor da celula [ô]Nome[ô] da linha actual
command.Parameters.Add([Ô]@Total_Produtos[Ô], SqlDbType.VarChar).Value = .Rows(x).Cells([Ô]Total_Produtos[Ô]).Value [ô] Le o valor da celula [ô]Idade[ô] da linha actual
connection.Open()
command.ExecuteScalar()
Dim x As Integer = command.ExecuteNonQuery()
If x < 1 Then
MessageBox.Show([Ô]A operação efectuada não retomou qualquer resultado.[Ô])
End If
Next
connection.Close()
connection = Nothing
Command = Nothing

Catch ex As Exception
MessageBox.Show([Ô]Erro [Ô] & ex.Message)
End Try
End Sub
ALTAIR148 15/07/2012 23:14:08
#406152
Bom, você não disse qual o erro que acontece, então o jeito é chutar aqui, quando for assim, fale qual mensagem de erro que fica mais fácil de identificar o erro.
Veja se o código abaixo resolve.

Try
With Dg_Vendas
connection.Open()
Dim connection As New SqlConnection(strCon)
For x = 0 To Dg_Vendas.RowCount - 1
Dim con As New SqlConnection([Ô]Data Source=.\sqlexpress;Initial Catalog=Academia.mdf;Integrated Security=True[Ô])
Dim SQL As String = [Ô]Insert into VendasProdutos ([Cod_Produto], [Descricao], [Nome_Cliente], [Quantidade], [Preco], [Desconto],[Total_Produtos]) values (@Cod_Produto, @Descricao,@Nome_Cliente, @Quantidade, @Preco, @Desconto, @Total_Produtos);[Ô]

Dim command As New SqlCommand(SQL, connection)
command.Parameters.Add([Ô]@Cod_Produto[Ô], SqlDbType.Int).Value = .Rows(x).Cells([Ô]Cod_Produto[Ô]).Value [ô] Le o valor da celula [ô]Nome[ô] da linha actual
command.Parameters.Add([Ô]@Descricao[Ô], SqlDbType.VarChar).Value = .Rows(x).Cells([Ô]Descricao[Ô]).Value [ô] Le o valor da celula [ô]Idade[ô] da linha actual
command.Parameters.Add([Ô]@Nome_Cliente[Ô], SqlDbType.VarChar).Value = .Rows(x).Cells([Ô]Nome_Cliente[Ô]).Value [ô] Le o valor da celula [ô]Nome[ô] da linha actual
command.Parameters.Add([Ô]@Quantidade[Ô], SqlDbType.Int).Value = .Rows(x).Cells([Ô]Quantidade[Ô]).Value [ô] Le o valor da celula [ô]Nome[ô] da linha actual
command.Parameters.Add([Ô]@Preco[Ô], SqlDbType.VarChar).Value = .Rows(x).Cells([Ô]Preco[Ô]).Value [ô] Le o valor da celula [ô]Morada[ô] da linha actual
command.Parameters.Add([Ô]@Desconto[Ô], SqlDbType.VarChar).Value = .Rows(x).Cells([Ô]Desconto[Ô]).Value [ô] Le o valor da celula [ô]Nome[ô] da linha actual
command.Parameters.Add([Ô]@Total_Produtos[Ô], SqlDbType.VarChar).Value = .Rows(x).Cells([Ô]Total_Produtos[Ô]).Value [ô] Le o valor da celula [ô]Idade[ô] da linha actual

command.ExecuteScalar()
Dim x As Integer = command.ExecuteNonQuery()
If x < 1 Then
MessageBox.Show([Ô]A operação efectuada não retomou qualquer resultado.[Ô])
End If
Command = Nothing
Next
connection.Close()
connection = Nothing

Catch ex As Exception
MessageBox.Show([Ô]Erro [Ô] & ex.Message)
End Try
End Sub
ROBFERREIRAA 15/07/2012 23:19:51
#406153
o erro que ocorre que diz que :
erro Column named Cod_Produto cannot be found.
parameter name:columnName
ja verifiquei o nome da coluna do dataset
e esta com o mesmo nome
ALTAIR148 16/07/2012 07:34:40
#406158
e no banco a coluna tem esse nome?
ROBFERREIRAA 16/07/2012 11:49:16
#406173
Sim tem esse nome
KERPLUNK 16/07/2012 11:53:21
#406174
A coluna não existe é no grid...
ROBFERREIRAA 16/07/2012 12:21:21
#406178
nao esta é a mensagem que retorna ela existe no grid e no bano de dados
ALTAIR148 16/07/2012 12:48:41
#406180
Amigo, acho que você está passando batido em algum detalhe. Vamos fazer o seguinte, crie um botão, e nele coloque o código abaixo, após ter o seu grid carregado com todas as colunas, clique nesse botão que ele vai mostrar um MSGBOX com o nome de cada coluna, e repare se vai ter a coluna que você diz que não é encontrada.

Dim colunas As String
With Dg_Vendas
For x = 0 To Dg_Vendas.ColumnCount - 1
colunas = .Columns(x).Name.ToString
MsgBox(colunas)
Next
End With
ROBFERREIRAA 17/07/2012 00:41:15
#406221
ola Altair tudo bem cara ? testie e deu o mesmo erro vou deletar tudo e fazer tudo novamente e te dou um tq pra te falar o que deu muito obrigado pela força abraços
Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas