VB.NET - Importando um projeto no SharpDevelop


No artigo - Criando um projeto no SharpDevelop - mostrei como criar um novo projeto usando aquele IDE. Neste artigo irei mostrar como importar um projeto já pronto e feito no Visual Studio .NET para o ambiente do SharpDevelop.

Vou importar um projeto pronto e feito no VS.NET onde preenchemos um controle ListView com dados de uma tabela Access.

Inicie o SharpDevelop . Você verá uma tela parecida com a tela abaixo.

Para importar um projeto existente selecione o menu Arquivo opção Importar Projeto

Na janela - Importar Projeto - selecione o projeto que deseja importar e a localização para onde vai importar o projeto

Clique no botão - Start - (deveria ser Iniciar em português) e pronto o seu projeto esta importado e convertido.

Perceba que temos um formulário : frmMain.vb e um arquivo listViewData.vb onde estão os códigos do projeto.

É verdade que teremos que faze alguns ajustes . O evento Click do botão de comando não tem o underscore como no VS .NET assim : Private Sub btnGetCusts_Click deverá ser convertido para private Sub BtnGetCustsClick.(Antes de fazer a mudança recompilei o projeto e ele rodou sem problemas)

Outro detalhe que você deverá ficar atendo é o nome padrão dos controles . No VS.NET o nome padrão é constituído pelo nome da classe e o numero 1. Assim temos TextBox1 , Button1 , Label1 , etc. No SharpDevelop o nome padrão seria : TextBox , Label , Button , etc.

O projeto que importamos faz o preenchimento de uma controle ListView a partir da tabela Custormers do banco de dados Northwind.mdb.

O código do projeto é o seguinte :

- Código do evento Click do botão - Get Customers. - do formulário do principal do projeto:

Private Sub btnGetCusts_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetCusts.Click
    Call GetCustomers()
End Sub

- O código da rotina GetCustomers() que obtêm os dados da tabela:

Private Sub GetCustomers()
Dim myCon As OleDbConnection
Dim sqlCmd As OleDbCommand = New OleDbCommand("SELECT * FROM Customers")
Dim myData As OleDbDataReader
Dim itmListItem As ListViewItem
Dim lvhHelper As ListViewData = New ListViewData()
myCon = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\teste\northwind.mdb")

Try
myCon.Open()
sqlCmd.Connection = myCon
myData = sqlCmd.ExecuteReader
lvhHelper.FillListView(lvwCustomers, myData)
myCon.Close()
Catch eOleDb As System.Data.OleDb.OleDbException
MessageBox.Show(eOleDb.ToString)
End Try

End Sub

- Finalmente o código da classe FillListView - que recebe o nome do controle ListView e um objeto com os dados do tipo OleDbDataReader.. Esta classe esta no arquivo ListViewData.vb.

Imports System.Data.OleDb

Public Class ListViewData
Public Sub FillListView(ByRef MyListView As ListView, ByRef myData As OleDbDataReader)
Dim lvwColumn As ColumnHeader
Dim itmListItem As ListViewItem

Dim strTest As String

Dim shtCntr As Short

MyListView.Clear()
For shtCntr = 0 To myData.FieldCount() - 1
lvwColumn = New ColumnHeader()
lvwColumn.Text = myData.GetName(shtCntr)
MyListView.Columns.Add(lvwColumn)
Next

Do While myData.Read
 itmListItem = New ListViewItem()
 strTest = IIf(myData.IsDBNull(0), "", myData.GetString(0))
 itmListItem.Text = strTest

  For shtCntr = 1 To myData.FieldCount() - 1
    If myData.IsDBNull(shtCntr) Then
        itmListItem.SubItems.Add("")
    Else
        itmListItem.SubItems.Add(myData.GetString(shtCntr))
    End If
 Next shtCntr

 MyListView.Items.Add(itmListItem)
Loop
End Sub
End Class

Você pode compilar a aplicação no menu Compilar | Compilar Combine . Se não houver erros durante a compilação basta executar o projeto. (Ainda não sei o que quer dizer combine em Portugal apenas deduzo...)

Clicando no botão carregar dados teremos o resultado exibido a seguir.

Acabamos de importar um projeto feito no VS.NET no SharpDevelop sem grandes problemas. Embora o projeto seja muito simples. Aguarde mais artigos sobre a utilização do SharpDevelop onde iremos importar um projeto com acesso a dados com opção para alterar , incluir , excluir e atualizar dados.

Até mais


José Carlos Macoratti