Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gs3llmann

Inserindo dados com C# no banco SQL

Recommended Posts

Olá,

 

sou iniciante na plataforma .net e estou tentando criar um pequeno formulário que inserir o Nome, Sobre Nome e email é enviado para uma pequena base de dados em sql, segue os dados para analise!

 

Obs.: peço que ao responder explique o motivo do erro.

 

:rolleyes: Obrigado.

 

Página default.aspx

 

<%@ Page Language="C#"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    private void inserir (object source, EventArgs e){
        SqlDataSource.Insert();
        }
    
protected void  Page_Load(object sender, EventArgs e)
{

}
</script>
<html>
<head runat="server">
    <title>Inserindo dados com SQL</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:SqlDataSource ID="SqlDataSource" runat="server" 
            ConnectionString="<%$ ConnectionStrings:infratelecomConnectionString %>" 
            SelectCommand="SELECT [nome], [sobrenome], [email] FROM [Telefonia]">
        </asp:SqlDataSource>
        <br />
        <asp:DropDownList ID="DropDownList1" runat="server" 
            DataSourceID="SqlDataSource" 
            DataTextField="nome" 
            DataValueField="sobrenome" Height="20px" Width="167px">
        </asp:DropDownList>
        <br />
        <asp:Label ID="Label1" runat="server" Text="Nome: "></asp:Label>
    <br />
 
        <asp:TextBox ID="Nome" runat="server">
        </asp:TextBox>
        
        
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
            ControlToValidate="Nome" ErrorMessage="Digite seu nome!"></asp:RequiredFieldValidator>
        
        
        <br />
        <asp:Label ID="Label2" runat="server" Text="Sobre Nome:"></asp:Label>
        <br />
        
        
        <asp:TextBox ID="sobrenome" runat="server">
        </asp:TextBox>
        
        
        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
            ControlToValidate="sobrenome" ErrorMessage="Digite seu sobre nome!"></asp:RequiredFieldValidator>
        
        
        <br />
        <asp:Label ID="Label3" runat="server" Text="E-mail:"></asp:Label>
        <br />
        
        
        <asp:TextBox ID="email" runat="server">
        </asp:TextBox>
        
        <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
            ControlToValidate="email" ErrorMessage="Digite seu e-mail!" Visible="False"></asp:RequiredFieldValidator>
        
<br />  
<asp:Button ID="button1" runat="server" Text="Inserir dados" OnClick="inserir" />



    </div>
    </form>
</body>
</html>

Base SQL

create database infratelecom

Create table Telefonia (
	nome			varchar(50) not null primary key,
	sobrenome		varchar(50) not null,
	email			varchar(80)	not null,
	)

Erro que apresenta

Inserting is not supported by data source 'SqlDataSource' unless InsertCommand is specified. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.NotSupportedException: Inserting is not supported by data source 'SqlDataSource' unless InsertCommand is specified.

Source Error: 


Line 4:  <script runat="server">
Line 5:      private void inserir (object source, EventArgs e){
Line 6:          SqlDataSource.Insert();
Line 7:          }
Line 8:      
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Movido Plataforma .NET http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Plataforma .NET > Web Applications

 

É simples você não definiu o Insert do seu SqlDataSource. De uma olhada neste artigo: http://www.codeproject.com/KB/aspnet/InsertSqlDataSource.aspx

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum...

 

eu ainda to fazendo alguma coisa errada!

 

pode de ajudar novamente?

 

<%@ Page Language="C#"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">   
private void inserir (object source, EventArgs e){ 
    SqlDataSource.Insert(); 
}   
protected void  Page_Load(object sender, EventArgs e){
}

protected void BTNInserirDados_Click(object sender, EventArgs e)
{
if (e.commandName == "BTNENVIAR")
{string strjulio = e.commandargument.tostring();
    
    DataControlFieldCell controlparent = (DataControlFieldCell)((button) sender).Parent;
    SqlDataSource s =(SqlDataSource).cell.findcontrol("sqldatasource");
    s.InsertParameters[0].DefaultValue = strjulio;
    s.Insert();

}
                                                                                                                             
</script>
<html>
<head id="Head1" runat="server">
<title>Inserindo dados com SQL</title>
</head>
<body>
    <form id="form1" runat="server"> 
       <div>        
       <asp:SqlDataSource ID="SqlDataSource" runat="server"
       ConnectionString="<%$ ConnectionStrings:infratelecomConnectionString %>" 
       SelectCommand="SELECT [nome], [sobrenome], [email] FROM [Telefonia]" 
               DeleteCommand="DELETE FROM [Telefonia] WHERE [nome] = @nome" 
               InsertCommand="INSERT INTO [Telefonia] ([nome], [sobrenome], [email]) VALUES (@nome, @sobrenome, @email)" 
               UpdateCommand="UPDATE [Telefonia] SET [sobrenome] = @sobrenome, [email] = @email WHERE [nome] = @nome">
           <DeleteParameters>
               <asp:Parameter Name="nome" Type="String" />
           </DeleteParameters>
           <UpdateParameters>
               <asp:Parameter Name="sobrenome" Type="String" />
               <asp:Parameter Name="email" Type="String" />
               <asp:Parameter Name="nome" Type="String" />
           </UpdateParameters>
           <InsertParameters>
               <asp:Parameter Name="nome" Type="String" />
               <asp:Parameter Name="sobrenome" Type="String" />
               <asp:Parameter Name="email" Type="String" />
           </InsertParameters>
       
       </asp:SqlDataSource> 
       <br />
       <asp:DropDownList ID="DropDownList1" runat="server" 
       DataSourceID="SqlDataSource" 
       DataTextField="nome" 
       DataValueField="sobrenome"
       Height="20px" Width="167px">
       </asp:DropDownList>
       <br />
       <asp:Label ID="Label1" runat="server" Text="Nome: "></asp:Label>
       <br />
       <asp:TextBox ID="Nome" runat="server"> 
       </asp:TextBox> 
       <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
       ControlToValidate="Nome" ErrorMessage="Digite seu nome!">
       </asp:RequiredFieldValidator>
       <br />
       <asp:Label ID="Label2" runat="server" Text="Sobre Nome:"></asp:Label>
       <br />
       <asp:TextBox ID="sobrenome" runat="server"></asp:TextBox>
       <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"
       ControlToValidate="sobrenome" ErrorMessage="Digite seu sobre nome!">
       </asp:RequiredFieldValidator>
       <br />
       <asp:Label ID="Label3" runat="server" Text="E-mail:"></asp:Label>
       <br />
       <asp:TextBox ID="email" runat="server"></asp:TextBox>
           <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
               ControlToValidate="email" ErrorMessage="Digite seu e-mail!"></asp:RequiredFieldValidator>
           <br /> 
        
           <br />
           
           <asp:Button ID="BTNInserirDados" runat="server" CommandName="BTNENVIAR"
               style="z-index: 1; left: 10px; top: 241px; position: absolute" 
               Text="Enviar Dados" onclick="BTNInserirDados_Click" />
           
       </div>
       </form>
       </body>  
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quintelab,

 

Consegui fazer funcionar com o artigo que você mencionou e com ajuda de outro SqlDataSource.InsertCommand

 

Notei outros pontos que não tinha visto, tipo:

 

FORMFIELD dentro do INSERTPARAMETERS e o INSERT INTO como você havia mencionado.

 

Agora vou fazer outra pergunta, como que eu faço pra colocar uma página de validação, sendo que quando o cara termina de preencher o form retorna uma mensagem de Ok?

 

Vou procurando na net mas se tiver algo fácil...

 

Mais uma vez obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.