VB.NET - Preenchendo um DataGrid somente leitura
Para exibir dados em um DataGrid no modo somente leitura , e assim , não permitir nenhuma alteração nos dados podemos fazer o seguinte:
Inicie um novo projeto no Visual Studio.NET com as seguintes características (sinta-se a vontade para alterar a seu gosto.)
NO formulário form1.vb inclua um componente DataGrid com o nome dglivros. Vamos exibir o conteúdo da tabela books que esta no banco de dados livros.mdb.
Abaixo temos a esquerda a aparência do formulário com o DataGrid já formatado ; a direita o projeto em execução exibindo os dados.
O código que você deve incluir para fazer o serviço é:
Imports System.Data.OleDb Public Class Form1 Inherits System.Windows.Forms.Form Private Const SELECT_STRING As String = "SELECT * FROM books ORDER BY Title" ' Definindo o DataSet Private m_DataSet As DataSet ' Definindo um DataView para permitir acesso somente leitura Private m_DataView As DataView ' carrega os dados Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim mome_BancoDados As String Dim string_conexao As String Dim data_adapter As OleDbDataAdapter ' Compoe o nome do banco de dados mome_BancoDados = Application.StartupPath() mome_BancoDados = mome_BancoDados.Substring(0, mome_BancoDados.LastIndexOf("\")) mome_BancoDados = mome_BancoDados & "\livros.mdb" ' Monta a string de conexao string_conexao = "Provider=Microsoft.Jet.OLEDB.4.0;"Data Source=" & mome_BancoDados ' Cria o OleDbDataAdapter. data_adapter = New OleDbDataAdapter(SELECT_STRING, string_conexao) ' mapeia para a tabela Livros data_adapter.TableMappings.Add("Table", "livros") Try ' Preenche o DataSet. m_DataSet = New DataSet() data_adapter.Fill(m_DataSet) Catch ex As Exception MsgBox(ex.Message) End Try ' cria um DataView para os dados e define as permissões para editar , excluir e incluir como false m_DataView = New DataView(m_DataSet.Tables("livros")) m_DataView.AllowDelete = False m_DataView.AllowEdit = False m_DataView.AllowNew = False ' vincula o controle DataGrid ao dataview dglivros.DataSource = m_DataView End Sub End Class
|
para você entender:
mome_BancoDados = Application.StartupPath()
mome_BancoDados = mome_BancoDados.Substring(0, mome_BancoDados.LastIndexOf("\"))
mome_BancoDados = mome_BancoDados & "\livros.mdb"
O
código acima procura pelo banco de dados no diretório da aplicação e monta o
nome corretamente do caminho para localizar o banco de dados
' cria um DataView para os dados e define as permissões para editar , excluir e incluir como false
m_DataView = New DataView(m_DataSet.Tables("livros"))
m_DataView.AllowDelete = False
m_DataView.AllowEdit = False
m_DataView.AllowNew = False
O código acima é que realmente faz com que os dados do grid sejam somente leitura. Criei um objeto DataView e defini as permissões para alteração, exclusão e edição como false. Para exibir os dados no grid fazemos:
' vincula o controle DataGrid ao dataview
dglivros.DataSource = m_DataView
Até a próxima dica VB.NET...
José Carlos Macoratti