NEW WINDOWS.FORM
Pessoal bom dia,
Tenho uma query que estou montando porém irei utillizar ela em vários form, estou pensando que na hora de carregar poderia passar o nome do form como parametro como eu faço isso ?
Estava pensando em gera uma variavel como :
Dim strNomeForm as new Windows.form
Porém da erro:
Função:
Public Function fncListarStatus(NOMEFORM)
[ô]SQL
strConn = New SqlConnection(ConnectionString)
strConn.Open()
selectText = [Ô]SELECT * FROM tblStatusEquipamentos[Ô]
myCommand = New SqlCommand(selectText, strConn)
dr = myCommand.ExecuteReader()
While (dr.Read())
NOMEDOFORM.COMBOBOX.Items.Add(dr([Ô]dcDescricaoStatus[Ô]).ToString)
End While
strConn.Close()
End Function
Tenho uma query que estou montando porém irei utillizar ela em vários form, estou pensando que na hora de carregar poderia passar o nome do form como parametro como eu faço isso ?
Estava pensando em gera uma variavel como :
Dim strNomeForm as new Windows.form
Porém da erro:
Função:
Public Function fncListarStatus(NOMEFORM)
[ô]SQL
strConn = New SqlConnection(ConnectionString)
strConn.Open()
selectText = [Ô]SELECT * FROM tblStatusEquipamentos[Ô]
myCommand = New SqlCommand(selectText, strConn)
dr = myCommand.ExecuteReader()
While (dr.Read())
NOMEDOFORM.COMBOBOX.Items.Add(dr([Ô]dcDescricaoStatus[Ô]).ToString)
End While
strConn.Close()
End Function
1 - Crie uma classe para representar os status dos equipamentos, contendo as propriedades necessárias pra vc
2 - Crie uma outra classe que contenha um método que retorne uma lista de instâncias dessa classe que representa os status de equipamento, e que faz o que está no seu procedimento aà em cima
3 - Uma alternativa para ter a mesma coisa em todos os forms é criar um componente. Esse componente, vai conter a combo
4 - Não use notação húngara para tabelas, é completamente desnecessário, feio e dificulta a leitura do comando
2 - Crie uma outra classe que contenha um método que retorne uma lista de instâncias dessa classe que representa os status de equipamento, e que faz o que está no seu procedimento aà em cima
3 - Uma alternativa para ter a mesma coisa em todos os forms é criar um componente. Esse componente, vai conter a combo
4 - Não use notação húngara para tabelas, é completamente desnecessário, feio e dificulta a leitura do comando
Obrigado KerpLunk pelas dicas.
Esses esquemas de classe num manjo muito poderia colocar um exemplo ? Já estou olhando tbm mas se tiver alguma coisa de bate-pronto agradeço.
Obrigado.
Esses esquemas de classe num manjo muito poderia colocar um exemplo ? Já estou olhando tbm mas se tiver alguma coisa de bate-pronto agradeço.
Obrigado.
é o tipo de coisa que não tem como fazer um [Ô]exemplo[Ô] curtinho, tem que entender o conceito e saber o que está fazendo.
Também tem a alternativa de você fazer um form base que vai ser herdado pelos demais. Esse form base contém todos os controle necessários comuns em todos os formulários.
Também tem a alternativa de você fazer um form base que vai ser herdado pelos demais. Esse form base contém todos os controle necessários comuns em todos os formulários.
Entendi, acho que começei com uma luz...rsrsrs
Olha o que eu fiz...
[ô]CLASSE
Public Property PrimeiroNome() As String
Get
[ô]SQL
strConn = New SqlConnection(ConnectionString)
strConn.Open()
selectText = [Ô]SELECT * FROM tblStatusEquipamentos[Ô]
myCommand = New SqlCommand(selectText, strConn)
dr = myCommand.ExecuteReader()
While (dr.Read())
vPrimeiroNome = (dr([Ô]dcDescricaoStatus[Ô]).ToString)
End While
strConn.Close()
PrimeiroNome = vPrimeiroNome
End Get
Set(ByVal Value As String)
vPrimeiroNome = Value
End Set
End Property
[ô]FORM
[ô]POPULA GRID
Dim oMontaNome As New clsSQL
cboCentroCusto.Items.Add(oMontaNome.PrimeiroNome)
Está correto ?
A única coisa que percebi é que teria que ter a variavel como um array correto , pois assim ele só retorna a última.
Olha o que eu fiz...
[ô]CLASSE
Public Property PrimeiroNome() As String
Get
[ô]SQL
strConn = New SqlConnection(ConnectionString)
strConn.Open()
selectText = [Ô]SELECT * FROM tblStatusEquipamentos[Ô]
myCommand = New SqlCommand(selectText, strConn)
dr = myCommand.ExecuteReader()
While (dr.Read())
vPrimeiroNome = (dr([Ô]dcDescricaoStatus[Ô]).ToString)
End While
strConn.Close()
PrimeiroNome = vPrimeiroNome
End Get
Set(ByVal Value As String)
vPrimeiroNome = Value
End Set
End Property
[ô]FORM
[ô]POPULA GRID
Dim oMontaNome As New clsSQL
cboCentroCusto.Items.Add(oMontaNome.PrimeiroNome)
Está correto ?
A única coisa que percebi é que teria que ter a variavel como um array correto , pois assim ele só retorna a última.
Citação:A única coisa que percebi é que teria que ter a variavel como um array correto , pois assim ele só retorna a última.
Quase isso que você fez. A diferença é que essa classe que você criou, não vai ter código. Você vai criar uma outra classe com um método que retorno uma ListOf(T) dessa classe que você fez.
Entendi mas não compreendi, pode colocar um exemplo ?
Mais ou menos assim:
(Classe)
Public Function BuscaStatus As ListOf(SuaClasseDeStatus)
strConn = New SqlConnection(ConnectionString)
strConn.Open()
selectText = [Ô]SELECT * FROM tblStatusEquipamentos[Ô]
myCommand = New SqlCommand(selectText, strConn)
Dim Retorno As ListOf(SuaClasseDeStatus) = New ListOf(SuaClasseDeStatus)
Dim item As SuaClasseDeStatus = New SuaClasseDeStatus
dr = myCommand.ExecuteReader()
While (dr.Read())
item.PrimeiroNome = (dr([Ô]dcDescricaoStatus[Ô]).ToString)
item.OutraCoisaQualquer = (dr([Ô]Um outro campo[Ô]).ToString)
Retorno.Add(item)
End While
strConn.Close()
BuscaStatus = Retorno
End
(Classe)
Public Function BuscaStatus As ListOf(SuaClasseDeStatus)
strConn = New SqlConnection(ConnectionString)
strConn.Open()
selectText = [Ô]SELECT * FROM tblStatusEquipamentos[Ô]
myCommand = New SqlCommand(selectText, strConn)
Dim Retorno As ListOf(SuaClasseDeStatus) = New ListOf(SuaClasseDeStatus)
Dim item As SuaClasseDeStatus = New SuaClasseDeStatus
dr = myCommand.ExecuteReader()
While (dr.Read())
item.PrimeiroNome = (dr([Ô]dcDescricaoStatus[Ô]).ToString)
item.OutraCoisaQualquer = (dr([Ô]Um outro campo[Ô]).ToString)
Retorno.Add(item)
End While
strConn.Close()
BuscaStatus = Retorno
End
Tópico encerrado , respostas não são mais permitidas