FB+ASP.NET+VB.NET

 Tópico anterior Próximo tópico Novo tópico

FB+ASP.NET+VB.NET

ASP.NET

 Compartilhe  Compartilhe  Compartilhe
#491368 - 20/11/2019 18:15:19

JOERBETH

Cadast. em:Junho/2005


Boa tarde pessoal, como estão?

Seguinte, estou agora envolvido no .NET, apanhando.rs

Preciso de uma ajuda..

Estou tentando listar (mesmo para efeito de teste), alguns dados de uma tableta do FB, estou usando ASP.NET+MVC, tenho o seguinte:

No Controlador:
Imports System.Web.Mvc
Imports FirebirdSql.Data.FirebirdClient

Namespace Controllers
    Public Class GraficaController
        Inherits Controller
        Dim caminho As String = "User=SYSDBA;Password=masterkey;Database=D:\Grafica Primus\grafica.fdb;DataSource=localhost;
Port=3050;Dialect=3;Charset=NONE;Role=;Connection lifetime=15;Pooling=true;
MinPoolSize=0;MaxPoolSize=50;Packet Size=8192;ServerType=0;"
        Dim conexao As FbConnection = New FbConnection(caminho)

        ' GET: Grafica
        Function Grafica() As ActionResult
            Dim cmd As New FbCommand()
            cmd.CommandText = "SELECT * From OS_ARTE"
            cmd.Connection = conexao


            Try
                conexao.Open()
                'MsgBox("Conexão realizada com sucesso", vbInformation, "Aviso ao Usuário")
                Dim reader As FbDataReader = cmd.ExecuteReader
                While reader.Read()
                    Console.WriteLine("{0} - {1}", reader.GetString(0), reader.GetString(1))
                End While
                reader.Close()
            Catch ex As Exception
                MsgBox("Aconteceu o erro: " + ex.Message + ",vbCritical,")
            Finally
                conexao.Close()
            End Try
            Return View()

        End Function
    End Class
End Namespace

****************no vbhtml ********************

@ModelType GraficaPrimus.Grafica

@Code
    Layout = Nothing
End Code

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Grafica</title>
</head>
<body>
    <div>
        <div id="header">
            <h1>teste</h1>
        </div>
        <div id="footer">
            <p>Todos os direitos reservados JKinfoNET © 2019</p>
            
        </div>
    </div>
</body>
</html>


Bom, quero somente listar no navegador, os dados do select: SELECT * From OS_ARTE,carrega a pagina normal, mais nada dos dados, alguém pode me ajudar?

OBS: Paciência ai...rs

Valeu



Joerbeth

#491375 - 20/11/2019 20:12:13

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Console.Writeline, não vai servir. Você precisa usar o modelo exposto no seu pseudo-HTML, mais ou menos assim:

@Model Grafica.GraficaModel
@foreach(var os in Model.ListaCoisas)
{
    @ codigo HTML aqui
}


Você vai precisar criar o modelo de dados para ser visto na View:

public class Coisa
{
    public string Campo1 {get; set; }
    public string Campo2 {get; set; }
}

public class GraficaModel
{
    public List<Coisa> Coisas {get; set;}
}


E depois colocar esse modelo de dados na controller:

//isso é um field na classe
GraficaModel _model
.....
Try
                conexao.Open()
                'MsgBox("Conexão realizada com sucesso", vbInformation, "Aviso ao Usuário")
                Dim reader As FbDataReader = cmd.ExecuteReader
                While reader.Read()
                    _model.Coisas.Add(new Coisa(){ Campo1 = reader.GetString(0), Campo2 = reader.GetString(1) });
                End While




Tenha em mente que isso é para exemplificar apenas, tá misturado código C# ae, fiz de cabeça e não testei, mas a idéia é essa, é isso que tem que ser feito. Sugiro dar uma estudada mais a fundo de como funciona o MVC.

_______________________________________________________________________
Virei Oráculo!
The end is nigh, be ready for the nukes!


#491376 - 20/11/2019 21:13:33

JOERBETH

Cadast. em:Junho/2005


Opa, tenho o modelo, mais estou fazendo em VB e não #C

rs

Valeu

Joerbeth

#491381 - 20/11/2019 23:17:26

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Bem, no seu lugar cogitaria seriamente a migração para C#. Os motivos são vários, se quiser, eu cito. Não que não seja possível com VB mas C# é uma alternativa muito melhor.

_______________________________________________________________________
Virei Oráculo!
The end is nigh, be ready for the nukes!


#491384 - 21/11/2019 11:31:17

JOERBETH

Cadast. em:Junho/2005


Kerplunk? e maior ou melhor com relação a C# do que VB#?

Joerbeth

#491385 - 21/11/2019 11:49:55

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Não existe "VB#", é VB.NET.
O caso é que a esmagadora maioria da documentação, exemplos e tutoriais, são voltados à C#, por ser muito mais simples, intuitivo e adaptável quando comparado ao dialeto VB. Além disso, a plataforma .NET tradicional está com os dias contados. Os planos da Microsoft são continuar com a plataforma .NET Core, que não possui ainda suporte decente à VB e não tem planos de manter o VB como prioridade.

Entendo que você tenha vindo do VB6 e como uma grande maioria, pensou que o VB.NET seria um "upgrade" naturalmente do VB6. É um engano muito comum.

C# possui uma sintaxe muito mais amigável e adaptável em comparação ao VB e ela é muitíssimo parecida com Java, Javascript, APEX e uma série de outras. Ou seja, fique familiarizado com a sintaxe do C# e todas essas outras vem de carona.

_______________________________________________________________________
Virei Oráculo!
The end is nigh, be ready for the nukes!


#491386 - 21/11/2019 11:52:59

JOERBETH

Cadast. em:Junho/2005


Entendi, quando falei VB# quis abreviar.rs

Ok, obrigado, então vamos nessa...

qualquer coisa, grito

Obrigado mais uma vez amigos

Joerbeth

Joerbeth

#491399 - 21/11/2019 19:22:56

JOERBETH

Cadast. em:Junho/2005


Boa tarde

Eu de novo...

Preciso de ajuda de novo... mais tá indo

****************Tenho meu Webconfig a parte para string de conexão com banco
<connectionStrings>
    <add name="StringConexao" connectionString="User=SYSDBA;PassWord=masterkey;Database=D:\Grafica Primus\grafica.fdb;DataSource=localhost;Port=3050;Dialect=3"/>
</connectionStrings>
****************Meu Controlador:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using FirebirdSql.Data.FirebirdClient;
using System.Configuration;

namespace Jkinfonet.Controllers
{
    public class JKinfonetController : Controller
    {
        // GET: JKinfonet
        public ActionResult JKinfonet()
        {
            
            return View();
        }
    }
}
*************************minha classe:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using FirebirdSql.Data.FirebirdClient;
using System.Configuration;

namespace Jkinfonet.Models
{
    public class BD
    {
        private static readonly BD Instancia = new BD();

        private BD() { }

        public static BD PergarInstancia()
        {
            return Instancia;
        }
        public FbConnection PegarConexao()
        {
            string con = ConfigurationManager.ConnectionStrings["StringConexao"].ToString();
            return new FbConnection(con);
        }
        public static bool testarConexao()
        {
            bool resposta = true;
            using (FbConnection Conexao = BD.PergarInstancia().PegarConexao())
            {
                try
                {
                    Conexao.Open();
                }
                catch
                {

                    resposta = false;
                }
                finally
                {
                    Conexao.Close();

                }

            }
            return resposta;
        }
    }
}

Tentei chamar essa clase BD no Controlador, para testar a conexão, mais não consegui?, o que pode ser?

Grato

Joerbeth


Joerbeth

#491400 - 21/11/2019 19:27:48

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Inclua a diretiva do namespace da sua classe nas diretivas do controller:

using Jkinfonet.Models;

Instanciando:
BD banco = new BD();
banco.testarConexao();


Não sei exatamente o que está fazendo, mas sugiro o uso de algum ORM para facilitar sua vida. Fazer as coisas assim tudo na munheca é trabalhoso e não vale à pena no final das contas.

_______________________________________________________________________
Virei Oráculo!
The end is nigh, be ready for the nukes!


#491401 - 21/11/2019 19:32:12

JOERBETH

Cadast. em:Junho/2005


Mais não é necessário eu instanciar novament, porque ja tenho na class como estatica:

        private static readonly BD Instancia = new BD();

Correto?

então somente:  BD.testarConexao();

?


Joerbeth

#491402 - 21/11/2019 20:00:35

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
A classe não está estática, o método está, mas a classe não. E você não precisa daquele campo "Instancia". Nada ali precisa(ou mesmo deveria) ser estático.

_______________________________________________________________________
Virei Oráculo!
The end is nigh, be ready for the nukes!


 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por JOERBETH em 04/01/2020 10:32:22