Jump to content


Photo

Página: Cadastro


  • Faça o login para participar
11 replies to this topic

#1 adolfoshaman

adolfoshaman

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Não informado

Posted 07/08/2004, 17:08

Estou aprendendo agora o uso do Web Matrix juntamente com a linguagem C#. To tentando fazer uma página da web(formato aspx) que envia os dados de um cadastro para um banco de dados do Access. A página coleta Nome, E-mail, Login e Senha e mandam para um banco de dados ... mas tentei criar mas num to conseguindo os dados não estão indo para o BD .. será que alguém podia me ajudar com um exemplo ou como dicas de desenvolver isso .. .ficarei muito grato espero resposta.

#2 hicksteinlab

hicksteinlab

    Novato no fórum

  • Usuários
  • 15 posts
  • Sexo:Não informado

Posted 07/08/2004, 20:31

Olá Adolfo,

poderia postar seu código para que nós possamos analisar?

Espero resposta...abs,
Leonardo Hickstein
Hickstein Lab

#3 adolfoshaman

adolfoshaman

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Não informado

Posted 07/08/2004, 21:00

Olá Adolfo,

poderia postar seu código para que nós possamos analisar?

Espero resposta...abs,
Leonardo Hickstein
Hickstein Lab

Bom ... o codigo eh o seguinte:





<%@ Page Language="C#" Debug="true" %>
<%@ Register TagPrefix="wmx" Namespace="Microsoft.Matrix.Framework.Web.UI" Assembly="Microsoft.Matrix.Framework, Version=0.6.0.0, Culture=neutral, PublicKeyToken=6f763c9966660626" %>
<script runat="server">

// Insert page code here
//


void cadclear_Click(object sender, EventArgs e) {
nome.Text=null;
email.Text=null;
login.Text=null;
senha.Text=null;
}

void cadok_Click(object sender, EventArgs e) {

string Nome = this.nome.Text;
string Email = this.email.Text;
string Login = this.login.Text;
string Senha = this.senha.Text;
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=C:\\Adolfo\\Progr" +
"amação WEB\\bduser.mdb";
System.Data.IDbConnection dbConnection = new System.Data.OleDb.OleDbConnection(connectionString);

string queryString = "INSERT INTO [cad1] ([Nome], [E-mail], [Login], [Senha]) VALUES (Nome, Email, Logi" +
"n, Senha)";
System.Data.IDbCommand dbCommand = new System.Data.OleDb.OleDbCommand();
dbCommand.CommandText = queryString;
dbCommand.Connection = dbConnection;

int rowsAffected = 0;
dbConnection.Open();
try {
rowsAffected = dbCommand.ExecuteNonQuery();
}
finally {
dbConnection.Close();
}

return rowsAffected;


}

</script>
<html>
<head>
<title>CADASTRO DE USUÁRIOS - VERSÃO 1.0</title>
</head>
<body>
<form runat="server">
<p align="center">
<strong><font face="Verdana" color="#0000a0">CADASTRO DE USUÁRIOS</font></strong>
</p>
<p align="center">
<strong><em><font face="Verdana" color="black" size="1">Preencha os campos abaixos
e clique em enviar para se cadastrar na área restrita do nosso site.</font></em></strong>
</p>
<p align="center">
<strong><em><font face="Verdana" size="1">Esta é maneira mais segura de você ter acesso
a todas as áreas do nosso site.</font></em></strong>
</p>
<p align="center">
<strong><em><font face="Verdana" size="1"></font></em></strong>
</p>
<strong><font face="Verdana" size="2">
<p align="left">
<asp:Label id="Label1" runat="server">Nome:</asp:Label>
<asp:TextBox id="nome" runat="server" Width="301px"></asp:TextBox>
</p>
<p align="left">
<asp:Label id="Label2" runat="server">E-mail:</asp:Label>
<asp:TextBox id="email" runat="server" Width="223px"></asp:TextBox>
</p>
<p align="left">
<asp:Label id="Label3" runat="server">Login:</asp:Label>
<asp:TextBox id="login" runat="server" Width="155px"></asp:TextBox>
<em><font size="1">(max: 20 caracteres)</font></em>
</p>
<p align="left">
<asp:Label id="Label4" runat="server">Senha:</asp:Label>
<asp:TextBox id="senha" runat="server" Width="149px"></asp:TextBox>
<em><font size="1">(max: 8 caracteres)</font></em>
</p>
<p align="left" runat="server">
<asp:Button id="cadok" onclick="cadok_Click" runat="server" Text="Cadastrar"></asp:Button>
<asp:Button id="cadclear" onclick="cadclear_Click" runat="server" Text="Limpar"></asp:Button>
</p>
<p align="left" runat="server">
</p>
<p align="right" runat="server">
<asp:Label id="Label5" style="Z-INDEX: 100; LEFT: 472px; POSITION: absolute; TOP: 361px" runat="server" font-size="XX-Small" font-names="Verdana" font-bold="True" font-italic="True">by
Adolfo Guimarães</asp:Label>
</p>
<p align="left">
</p>
</font></strong>
<!-- Insert content here -->
</form>
</body>
</html>



ABAIXO ESTÁ O ERRO APÓS COMPILAR:

Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: CS0127: Since 'ASP.cadastro_aspx.cadok_Click(object, System.EventArgs)' returns void, a return keyword must not be followed by an object expression

Source Error:



Line 39: }
Line 40:
Line 41: return rowsAffected;
Line 42:
Line 43:

bom espero que possa me ajudar ... desde já grato pela resposta.

Adolfo

#4 hicksteinlab

hicksteinlab

    Novato no fórum

  • Usuários
  • 15 posts
  • Sexo:Não informado

Posted 08/08/2004, 13:34

Olá Adolfo,

Pelo erro que estou vendo, o que acontece, é que você está tentando retornar um valor...como se fosse uma função, mas não é...

Não se esqueça, q uma rotina (void) não retorna nenhum valor...

O que você poderia fazer é realizar um if com essa variavel, do tipo, se essa variável é >= 0, then....

OBS: O que retornaria um valor seria uma função, ex:

private int CadastraUsuario
{
    // executa algum código

    return rowsAffected;
}


Espero ter ajudado..abs,
Leonardo Hickstein
Hickstein Lab

#5 adolfoshaman

adolfoshaman

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Não informado

Posted 11/08/2004, 16:10

Olá Adolfo,

Pelo erro que estou vendo, o que acontece, é que você está tentando retornar um valor...como se fosse uma função, mas não é...

Não se esqueça, q uma rotina (void) não retorna nenhum valor...

O que você poderia fazer é realizar um if com essa variavel, do tipo, se essa variável é >= 0, then....

OBS: O que retornaria um valor seria uma função, ex:

private int CadastraUsuario
{
    // executa algum código

    return rowsAffected;
}


Espero ter ajudado..abs,
Leonardo Hickstein
Hickstein Lab

:) Olá hicksteinlab,

não to conseguindo elaborar os códigos .. como sou iniciante nessa área não to conseguindo entender o q você propos ... será que você tinha algum script de exemplo ou um tutorial que pudesse auxiliar ... desde já agradeço pela resposta e pela atenção em resolver esse problema.

Obrigado e abraços
Adolfo

#6 hicksteinlab

hicksteinlab

    Novato no fórum

  • Usuários
  • 15 posts
  • Sexo:Não informado

Posted 11/08/2004, 18:54

Olá Adolfo,

já que pediu, lá vai um exemplo:

<%@ Page Language="C#" Debug="true" %>
<%@ Register TagPrefix="wmx" Namespace="Microsoft.Matrix.Framework.Web.UI" Assembly="Microsoft.Matrix.Framework, Version=0.6.0.0, Culture=neutral, PublicKeyToken=6f763c9966660626" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
<script runat="server">

    void btnLimparCampos_Click(object sender, EventArgs e)
    {
        tbNome.Text = tbEmail.Text = tbLogin.Text = tbSenha.Text = "";
    }
    
    void btnCadastrarUsuario_Click(object sender, EventArgs e)
    {
        // Recupera os valores entrados pelo usuário
        string s_Nome = this.tbNome.Text;
        string s_Email = this.tbEmail.Text;
        string s_Login = this.tbLogin.Text;
        string s_Senha = this.tbSenha.Text;
    
        // Cria a string de conexão
        string s_Conexao = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("Teste.mdb");
    
        // Cria um objeto de conexão e como parâmetro a string de conexão
        OleDbConnection o_Conn = new OleDbConnection(s_Conexao);
    
        // Cria a string de sql
        string s_SQL = "INSERT INTO Cadastros (Nome, Email, Login, Senha) " +
            "VALUES ('" + s_Nome + "', '" + s_Email + "', '" +
            s_Login + "', '" + s_Senha + "')";
    
        // Cria um objeto para executar comandos contra o banco,
        // tal como inserir valores, com 2 parâmetros
        // 1º: a string de SQL
        // 2º: o objeto para conexão
        OleDbCommand o_Cmd = new OleDbCommand(s_SQL, o_Conn);
    
        try
        {
            o_Conn.Open();
            o_Cmd.ExecuteNonQuery();
    
            // Limpa os campos
            tbNome.Text = tbEmail.Text = tbLogin.Text = tbSenha.Text = "";
    
            // Exibe uma mensagem de sucesso
            Response.Write("Cadastro efetuado com sucesso!");
        }
        catch (OleDbException _Erro)
        {
            Response.Write("O seguinte erro foi constatado ao tentar inserir um registro junto ao banco!" +
                _Erro.Message + "<br />");
        }
        finally
        {
            if (o_Conn != null)
            {
                o_Conn.Close();
            }
        }
    }

</script>
<html>
<head>
    <title>CADASTRO DE USUÁRIOS - VERSÃO 1.0</title>
</head>
<body>
    <form runat="server">
        <table cellspacing="0" cellpadding="0" width="50%" align="center" border="0">
            <tbody>
                <tr>
                    <td colspan="2">
                        <h1>Cadastro de Usuários: 
                        </h1>
                        <hr />
                    </td>
                </tr>
                <tr>
                    <td width="30%">
                        Nome:</td>
                    <td width="70%">
                        <asp:TextBox id="tbNome" runat="server" width="100%"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td width="30%">
                        Email:</td>
                    <td width="70%">
                        <asp:TextBox id="tbEmail" runat="server" width="100%"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td width="30%">
                        Login:</td>
                    <td width="70%">
                        <asp:TextBox id="tbLogin" runat="server" width="100%"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td width="30%">
                        Senha:</td>
                    <td width="70%">
                        <asp:TextBox id="tbSenha" runat="server" width="100%" TextMode="Password"></asp:TextBox>
                    </td>
                </tr>
                <tr><td colspan="2"><hr /></td></tr>
                <tr>
                    <td align="right">
                        <asp:Button id="btnLimparCampos" onclick="btnLimparCampos_Click" runat="server" Text="Limpar Campos"></asp:Button>
                    </td>
                    <td align="left">
                        <asp:Button id="btnCadastrarUsuario" onclick="btnCadastrarUsuario_Click" runat="server" Text="Cadastrar Usuário"></asp:Button>
                    </td>
                </tr>
            </tbody>
        </table>
    </form>
</body>
</html>

Espero ter ajudado...abs,
Leonardo Hickstein
Hickstein Lab

#7 adolfoshaman

adolfoshaman

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Não informado

Posted 12/08/2004, 00:57

Olá Adolfo,

já que pediu, lá vai um exemplo:

<%@ Page Language="C#" Debug="true" %>
<%@ Register TagPrefix="wmx" Namespace="Microsoft.Matrix.Framework.Web.UI" Assembly="Microsoft.Matrix.Framework, Version=0.6.0.0, Culture=neutral, PublicKeyToken=6f763c9966660626" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
<script runat="server">

    void btnLimparCampos_Click(object sender, EventArgs e)
    {
        tbNome.Text = tbEmail.Text = tbLogin.Text = tbSenha.Text = "";
    }
    
    void btnCadastrarUsuario_Click(object sender, EventArgs e)
    {
        // Recupera os valores entrados pelo usuário
        string s_Nome = this.tbNome.Text;
        string s_Email = this.tbEmail.Text;
        string s_Login = this.tbLogin.Text;
        string s_Senha = this.tbSenha.Text;
    
        // Cria a string de conexão
        string s_Conexao = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("Teste.mdb");
    
        // Cria um objeto de conexão e como parâmetro a string de conexão
        OleDbConnection o_Conn = new OleDbConnection(s_Conexao);
    
        // Cria a string de sql
        string s_SQL = "INSERT INTO Cadastros (Nome, Email, Login, Senha) " +
            "VALUES ('" + s_Nome + "', '" + s_Email + "', '" +
            s_Login + "', '" + s_Senha + "')";
    
        // Cria um objeto para executar comandos contra o banco,
        // tal como inserir valores, com 2 parâmetros
        // 1º: a string de SQL
        // 2º: o objeto para conexão
        OleDbCommand o_Cmd = new OleDbCommand(s_SQL, o_Conn);
    
        try
        {
            o_Conn.Open();
            o_Cmd.ExecuteNonQuery();
    
            // Limpa os campos
            tbNome.Text = tbEmail.Text = tbLogin.Text = tbSenha.Text = "";
    
            // Exibe uma mensagem de sucesso
            Response.Write("Cadastro efetuado com sucesso!");
        }
        catch (OleDbException _Erro)
        {
            Response.Write("O seguinte erro foi constatado ao tentar inserir um registro junto ao banco!" +
                _Erro.Message + "<br />");
        }
        finally
        {
            if (o_Conn != null)
            {
                o_Conn.Close();
            }
        }
    }

</script>
<html>
<head>
    <title>CADASTRO DE USUÁRIOS - VERSÃO 1.0</title>
</head>
<body>
    <form runat="server">
        <table cellspacing="0" cellpadding="0" width="50%" align="center" border="0">
            <tbody>
                <tr>
                    <td colspan="2">
                        <h1>Cadastro de Usuários: 
                        </h1>
                        <hr />
                    </td>
                </tr>
                <tr>
                    <td width="30%">
                        Nome:</td>
                    <td width="70%">
                        <asp:TextBox id="tbNome" runat="server" width="100%"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td width="30%">
                        Email:</td>
                    <td width="70%">
                        <asp:TextBox id="tbEmail" runat="server" width="100%"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td width="30%">
                        Login:</td>
                    <td width="70%">
                        <asp:TextBox id="tbLogin" runat="server" width="100%"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td width="30%">
                        Senha:</td>
                    <td width="70%">
                        <asp:TextBox id="tbSenha" runat="server" width="100%" TextMode="Password"></asp:TextBox>
                    </td>
                </tr>
                <tr><td colspan="2"><hr /></td></tr>
                <tr>
                    <td align="right">
                        <asp:Button id="btnLimparCampos" onclick="btnLimparCampos_Click" runat="server" Text="Limpar Campos"></asp:Button>
                    </td>
                    <td align="left">
                        <asp:Button id="btnCadastrarUsuario" onclick="btnCadastrarUsuario_Click" runat="server" Text="Cadastrar Usuário"></asp:Button>
                    </td>
                </tr>
            </tbody>
        </table>
    </form>
</body>
</html>

Espero ter ajudado...abs,
Leonardo Hickstein
Hickstein Lab

Olá hicksteinlab,

Muito obrigado ... o código funcionou .. precisei só alterar umas coisas na instrução SQL ... ela ficou:

string s_SQL = "INSERT INTO [cad1] ([Nome], [E-mail], [Login], [Senha]) " +
               "VALUES ('" + s_Nome + "', '" + s_Email + "', '" +
               s_Login + "', '" + s_Senha + "')";

ou seja tive que acrescentar o "[" "]" antes e depois do nome da tabela e dos seus campos. .. no mais o código rodou normal. Desde já fico grato pela atenção e vou aperfeiçoar o sistema através desse código ...

espero estarmos em breve discutindo outro assunto ... Valeus abraços e inté mais.

#8 adolfoshaman

adolfoshaman

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Não informado

Posted 12/08/2004, 11:20

Olá hicksteinlab,

esse comandos só rodam com o webmatrix?! eh que quanto tentei colocá-los no Visual Studio .NET 2003 dava erro na hora de rodar a página.

Obrigado

Abraços

Adolfo

#9 hicksteinlab

hicksteinlab

    Novato no fórum

  • Usuários
  • 15 posts
  • Sexo:Não informado

Posted 12/08/2004, 11:46

Olá Adolfo,

eu fiz ele p/ você usar ele no WebMatrix, com certeza se vc copiar e colar p/ dentro do VS.NET ele não vai funcionar, porém se nos formos passo a passo, tu me indicando os erros q aparece eu possa te ajudar....

Abraços,
Leonardo Hickstein
Hickstein Lab

#10 adolfoshaman

adolfoshaman

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Não informado

Posted 13/08/2004, 02:51

Olá Adolfo,

eu fiz ele p/ você usar ele no WebMatrix, com certeza se vc copiar e colar p/ dentro do VS.NET ele não vai funcionar, porém se nos formos passo a passo, tu me indicando os erros q aparece eu possa te ajudar....

Abraços,
Leonardo Hickstein
Hickstein Lab

Olá hicksteinlab,

quando vou rodar aquele código no Visul Studio .NET ele apresenta um erro de compilação e grifa algumas partes do código com um sublinhado azul. É como se ele não reconhecesse os seguintes trechos do código:

// Recupera os valores entrados pelo usuário
string s_Nome = this.nome.Text;
string s_Email = this.email.Text;
string s_Login = this.login.Text;
string s_Senha = this.senha.Text;

// Cria a string de conexão
sring s_Conexao = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("bduser.mdb");

// Cria um objeto de conexão e como parâmetro a string de conexão
OleDbConnection o_Conn = new OleDbConnection(s_Conexao);

// Cria a string de sql
string s_SQL = "INSERT INTO [cad1] ([Nome], [E-mail], [Login], [Senha]) " +
"VALUES ('" + s_Nome + "', '" + s_Email + "', '" + s_Login + "', '" + s_Senha + "')";

// Cria um objeto para executar comandos contra o banco,
// tal como inserir valores, com 2 parâmetros
// 1º: a string de SQL
// 2º: o objeto para conexão
OleDbCommand o_Cmd = new OleDbCommand(s_SQL, o_Conn);

try
{
o_Conn .Open();
o_Cmd .ExecuteNonQuery();

// Limpa os campos
nome.Text = email.Text = login.Text = senha.Text = "";

// Exibe uma mensagem de sucesso
Label6.Text="Cadastro efetuado com sucesso";
}
catch (OleDbException _Erro)
{
Response.Write("O seguinte erro foi constatado ao tentar inserir um registro junto ao banco!" +_Erro .Message + "<br />");
}
finally
{
if (o_Conn != null)
{
o_Conn .Close();
}
}


os trechos que acho q ele não está aceitando são os que estão em NEGRITO

Bom ... isso é o que está acontecendo ... agradeço pela atenção e se possível espero resposta ... Obrigado!!! :)

Adolfo (y)

Edição feita por: adolfoshaman, 13/08/2004, 02:53.


#11 hicksteinlab

hicksteinlab

    Novato no fórum

  • Usuários
  • 15 posts
  • Sexo:Não informado

Posted 13/08/2004, 12:37

Olá Adolfo,

no VS.NET as coisas mudam um pouquinho...

-> o HTML fica separado do código C#;
-> o HTML fica na .aspx e o C# fica na .aspx.cs;
-> seria bom, se você lêsse algo, sobre como as coisas funcionam em VS.NET;
-> eu até poderia te explicar, mas a conversa seria imensamente longa...então leia algo, e ai sim, te ajudarei no que precisares, ok?

Espero ter ajudado...abs,
Leonardo Hickstein
Hickstein Lab

Edição feita por: hicksteinlab, 14/08/2004, 18:53.


#12 adolfoshaman

adolfoshaman

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Não informado

Posted 14/08/2004, 19:32

Olá Adolfo,

no VS.NET as coisas mudam um pouquinho...

-> o HTML fica separado do código C#;
-> o HTML fica na .aspx e o C# fica na .aspx.cs;
-> seria bom, se você lêsse algo, sobre como as coisas funcionam em VS.NET;
-> eu até poderia te explicar, mas a conversa seria imensamente longa...então leia algo, e ai sim, te ajudarei no que precisares, ok?

Espero ter ajudado...abs,
Leonardo Hickstein
Hickstein Lab

Oi hicksteinlab,

brigadaum pela ajuda ... vou da uma procurada e ler um pouco mais sobre VS .NET e aí quando as dúvidas forem aparecendo posto aqui atrás de ajuda.

Obrigado ... abraços e até a próxima postagem :)




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq