1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

ASP.NET Ajuda!

Discussão em 'Programação' iniciada por ng04, 23 de Outubro de 2007. (Respostas: 12; Visualizações: 1095)

  1. ng04

    ng04 Power Member

    Olá.

    Estou a usar o Visual Web Developer (ASP.NET VB) e estou a tentar criar uma espécie de simulador.

    Criei uma base de dados e umas textboxes. O que eu quero fazer é que quando eu clicar no botão "OK", o site me mostre um resultado da base de dados.

    Aqui vai o que quero fazer:

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
    If TextBox1.Text < 23 And TextBox2.Text < 10 Then
    'Aqui quero pôr o código que faz isto mostrar um campo ou linha da minha base de dados


    Será que alguém me consegue ajudar?
     
  2. alfinete

    alfinete Power Member

    expecificate melhor , o que vais escrever nessas caixas de texto, se queres que ele na pagina mostre o reultado de uma conta, ou se de verificasão de loguin, ou de outra qualqer coisa , expecifica o caso.
     
  3. ng04

    ng04 Power Member

    O que quero, é q conforme os valores que eu ponha nas várias TextBoxes, aquilo me devolva uma linha e/ou valor que esteja na minha base de dados.

    Queria fazer uma coisa do género:

    if
    textbox.text < 10 And textbox2.text < 20
    then
    devolve linha da BD com ID=1

    if
    textbox.text > 10 And textbox2.text > 20
    then
    devolve linha da BD com ID=2



    ...e por aí fora.

    Isto deve ser teoricamente básico (por exemplo em C++ é), mas estou-me a iniciar nisto não estou a ver como posso obter os resultados da BD.

    Já fui ao site que o SoundSurfer me arranjou (obrigado!) e mesmo assim surge-me sempre algum erro, devo estar a fazer alguma coisa mal relacionada com a BD.


    Se por acaso conheceres algum site com coisas deste género já feitas que eu possa sacar para ver como é, diz aí, sff. Já saquei coisas do MSDN e não cheguei a nenhuma conclusão.
     
  4. pascasso

    pascasso Power Member

    boas,

    agora pergunto-te uma coisa isso são só 2 if's? é que for eu tenho a soluçao, sa nao for tambem nao ha problema se ja tas familiarizado com o vb.net consegues adaptar como quiseres.

    tenho tambem de saber se estas a conectar a uma base de dados em SQL ou em Access.
    Se trabalhares com access, tenho a soluçao, se nao procuras um pouco no google por ADO.NET SQL connection ou entao vais ao VBCode.com ou 4Guysfromrolla e la tens a soluçao de certeza.
    tambem depende se keres apresentar o resultado numa string/texbox/layer ou numa tabela porque o codigo deferencia (nao muito mas diferencia).
     
  5. ng04

    ng04 Power Member

    Não, penso que serão precisos mais de dois If's.

    Estou a conectar a uma base de dados em SQL.

    Quanto à forma de apresentar o resultado é-me um bocado indiferente, mas poderia numa TextBox à vontade.


    Eu já andei a ler uma coisas e cheguei a fazer este código meio copiado, meio feito por mim, portanto há coisas no código que fiz que não entendo bem. Mas aqui vai:


    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
    If TextBox1.Text < 23 And TextBox2.Text < 10 Then


    Dim sql As New StringBuilder
    sql.Append("SELECT [Valor]")
    sql.Append("FROM [TblValor]")
    sql.Append("WHERE [ID_valor] = 1")

    Dim conn As New SqlConnection(conexao)
    Dim cmd As New SqlCommand(sql.ToString(), conn)
    conn.Open()

    lblTabela.Text = String.Format("Valor do pedido (by Scalar): {0:n2}", cmd.ExecuteScalar())
    conn.Close()


    End If
    End Sub





    Quanto aos erros que me aparecem, são estes:

    Type 'SqlConnection' is not defined.
    Type 'SqlCommand' is not defined.
    Name 'conexao' is not declared.
    Type 'SqlCommand' is not defined.



    Já cheguei à conclusão que o problema está em qualquer coisa dos Imports. Mas mesmo assim não consegui resolver isto.

    Se tu ou alguém me conseguisse ajudar, ficava muito agradecido.
     
  6. pascasso

    pascasso Power Member

    boas,

    os erros têm razao. onde é k esta declarado a string 'conexao' ?
     
  7. ng04

    ng04 Power Member

    Podes-me explicar como declaro isso? :S

    Entretanto andei a fazer outras coisas, mas agora estou de novo bloqueado com isto. Se me puderes ajudar...
     
  8. Khrono

    Khrono Power Member

    Para a string de conexao:

    Dim conexao as string = "
    Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;", onde:

    data source é o teu servidor, que neste caso penso que será : localhost
    initial catalog é a base de dados que vais usar
    user id é o teu utilizador de login na base de dados, deves ter criado um quando fizeste a base de dados e respectiva password no campo password


    agora em relação aos restantes erros:

    Type 'SqlConnection' is not defined.
    Type 'SqlCommand' is not defined.
    (...)

    Type 'SqlCommand' is not defined.

    estes significam que falta meteres esta linha no topo da pagina .vb fora da class criada por defeito. deve ficar algo assim:

    Imports System.data.sqlclient - penso que seja mais ou menos isto mas no VS ele apresenta as varias opções e devera pelo menos terminar com o Sqlclient

    Espero que isto te ajude no teu problema.

    Cumps,

    Khrono
     
  9. pascasso

    pascasso Power Member

    <%@ Page Language="VB" debug="true" %>
    <%@ Import Namespace="System.Data.sqlclient" %>

    poe isto no topo de tudo na pagina .aspx

    Khrono - 1º VS?
    2º ele nao esta a trabalhar com paginas de codigo separadas do tipo .aspx.vb ele ta a por o codigo na propria pagina .
     
    Última edição: 9 de Novembro de 2007
  10. ng04

    ng04 Power Member

    Muito obrigado aos dois, já consegui resolver os problemas que me apareciam. :)

    Mas... como sempre nestas coisas, apareceu-me outro erro. Desta vez foi:

    Name 'sql' is not declared.


    O erro aponta para onde eu pus a vermelho.
    Código:
        Protected Sub SqlDataSource1_Selecting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs)
            Dim conn As New Data.SqlClient.SqlConnection()
            Dim cmd As New SqlCommand([B][COLOR=Red]sql[/COLOR][/B].ToString(), conn)
            conn.Open()
        End Sub
    Ou seja, mais um problema de falta/ou má declaração.

    Sabem como posso declarar isto?


    Já agora... algumas destas perguntas podem parecer parvas e/ou básicas, mas é que eu estive a aprender isto através de tutoriais já que tenho alguma "pressa" em fazer isto, e algum código copiei, portanto há várias coisas que não percebo o que estão aí a fazer exactamente. Mas pronto, eu sei o que é declarar e tenho grande parte das noções por de trás disso, quer na parte de programação quer na de bases de dados, embora possa parecer, também não sou 100% burro nestas coisas. :D
     
  11. pascasso

    pascasso Power Member

    tem de ficar assim:

    Código:
                
        Protected Sub SqlDataSource1_Selecting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs)
                Dim sql As New StringBuilder
                sql.Append("SELECT [Valor]")
                sql.Append("FROM [TblValor]")
                sql.Append("WHERE [ID_valor] = 1")        
                Dim conn As New Data.SqlClient.SqlConnection()
            Dim cmd As New SqlCommand([COLOR=White]sql[/COLOR].ToString(), conn)
            conn.Open()
            
        End Sub 
    
     
  12. ng04

    ng04 Power Member

    Aha, muito obrigado, já funcionou tudo sem dar erros ao compilar!! :D Obrigado!! :P

    Agora só apareceu um erro quando tento executar aquilo... "The ConnectionString property has not been initialized.". Mas isto penso que não tem propriamente a ver com o código, ando a tentar resolver. :P
     

Partilhar esta Página