Array
(
)

Acesso a banco Access

Pricardo
   - 10 jul 2008

Salve!

Estou criando uma classe que tem um método para incluir registros numa tabela de domínio de um banco Access que contém apenas um campo. O método está conforme a seguir:

Public Class Perfis
Public Sub IncluirPerfil(ByVal p_dcPerfil As String)
Dim con As OleDbConnection = New OleDbConnection(conStr)
Dim SQL As String = ´INSERT INTO tb_perfil (dcPerfil) VALUES (par_dcPerfil)´
Dim cmd As OleDbCommand = New OleDbCommand(SQL, con)

cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue(´par_dcPerfil´, p_dcPerfil)

Try
con.Open()
cmd.ExecuteNonQuery()
Finally
con.Close()
End Try
End Sub
End Class

Numa página tenho um ObjectDatasource que está configurado para acessar a classe acima (com o método de INSERT apontando para o método acima descrito)e um DetailsView que acessa o ObjectDatasource.

Ao clicar no link button de Inserir do DetailsView recebo a seguinte mensagem:
ObjectDataSource ´odsPerfis´ não pôde localizar um método não genérico ´IncluirPerfil´ que tenha parâmetros: p_dcPerfil, dcPerfil.

Onde estou errando?

Agradeço a atenção de todos.

Cordialmente,
Paulo Ricardo Ferreira
Rio de Janeiro - BR

Donatopaschoa
   - 14 jul 2008

Tudo bem pricardo ?

Estive num cenário parecido c/ este e na época não sabia como resolver.

Foi quando percebi que o problema estava na ´visibilidade´ do método embutido na classe, ou seja, na sua classe ´Perfis´, tente substituir o método:
- ´Public Sub IncluirPerfil(ByVal p_dcPerfil As String)...´

Pelo método:
- ´Public Shared Sub IncluirPerfil(ByVal p_dcPerfil As String)...´

O ´poder´ da palavra ´Shared´ está diretamente ligado a visibilidade em qualquer outra classe onde vc deseja chamar o método ´IncluirPerfil

Espero ter contribuído.

Abçs.

Citação:
Salve!

Estou criando uma classe que tem um método para incluir registros numa tabela de domínio de um banco Access que contém apenas um campo. O método está conforme a seguir:

Public Class Perfis
Public Sub IncluirPerfil(ByVal p_dcPerfil As String)
Dim con As OleDbConnection = New OleDbConnection(conStr)
Dim SQL As String = ´INSERT INTO tb_perfil (dcPerfil) VALUES (par_dcPerfil)´
Dim cmd As OleDbCommand = New OleDbCommand(SQL, con)

cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue(´par_dcPerfil´, p_dcPerfil)

Try
con.Open()
cmd.ExecuteNonQuery()
Finally
con.Close()
End Try
End Sub
End Class

Numa página tenho um ObjectDatasource que está configurado para acessar a classe acima (com o método de INSERT apontando para o método acima descrito)e um DetailsView que acessa o ObjectDatasource.

Ao clicar no link button de Inserir do DetailsView recebo a seguinte mensagem:
ObjectDataSource ´odsPerfis´ não pôde localizar um método não genérico ´IncluirPerfil´ que tenha parâmetros: p_dcPerfil, dcPerfil.

Onde estou errando?

Agradeço a atenção de todos.

Cordialmente,
Paulo Ricardo Ferreira
Rio de Janeiro - BR


Pricardo
   - 14 jul 2008

Prezado Donato,

Acho que você deu a dica certa. Tão logo eu retorne das minhas férias vou testar a sua dica.

Agradeço a atenção.

Cordialmente,

Pricardo
   - 28 jul 2008

Prezado Donato,

Tentei a sugestão enviada por você de colocar o método como Shared mas, infelizmente, continuou dando a mesma mensagem de erro:
´ObjectDataSource odsPerfis não pôde localizar um método não genérico ´IncluirPerfil´ que tenha parâmetros: par_dcPerfil, dcPerfil.´

Agradeço a sua atenção.

Cordialmente,

Shmathz
   - 18 ago 2008

Boa tarde
Sou novato em programação asp.net e gostaria se possível umas dicas de como publicar os sites depois de estar tudo funionado localemte em sua maquina você publica através das opções build, public web site escolhe o endereço no caso ftp, depois da mensagem publicação com sucesso.
O que tenho que fazer se o servidor não dá suporte a sqlexpress 2005
Criei o banco no admin do servidor manualmemte executanto toas as store procedures e criando todas as tabelas mas continua a dar erro.
Você teria uma dica dentro deste contexto para fornecer.
segue erro abaixo

Server Error in ´/pizza´ Application.
--------------------------------------------------------------------------------

Runtime Error
Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.

Details: To enable the details of this specific error message to be viewable on remote machines, please create a <customErrors> tag within a ´web.config´ configuration file located in the root directory of the current web application. This <customErrors> tag should then have its ´mode´ attribute set to ´Off´.

<!-- Web.Config Configuration File -->

<configuration>
<system.web>
<customErrors mode=´Off´/>
</system.web>
</configuration>

Notes: The current error page you are seeing can be replaced by a custom error page by modifying the ´defaultRedirect´ attribute of the application´s <customErrors> configuration tag to point to a custom error page URL.

<!-- Web.Config Configuration File -->

<configuration>
<system.web>
<customErrors mode=´RemoteOnly´ defaultRedirect=´mycustompage.htm´/>
</system.web>
</configuration>

grato
vladimir shmathz