• Home
  • BD
  • Culinária
  • Dicas
  • DIY
  • Programação
  • Lógica
  • Resenhas
  • T.I
  • Tutorial
  • Outros
Facebook Twitter Instagram Google + Pinterest Youtube Bloglovin Mail

It Girl TI.

Um blogger sobre desenvolvimento, modelagem de dados, divulgação de eventos, tutoriais, dentre várias outras coisas Desenvolvimento em várias linguagens, meu principal foco é o c# pois é a linguagem que eu mais domino atualmente. E também sobre receitas fitness, resenha de livros e muito mais coisas.

No meu caso eu tenho uma classe de ligação ao meu banco de dados do sql, chamada conexãoBD. E tenho também uma classe chamada clientes, no qual tem todas as minhas variáveis da tabela cliente, no banco.
Para fazer o insert vamos precisar das seguintes using: System.Data.SqlClient; System.Data;
A minha classe de liganção com BD e que irá realizar todos os comandos sql sobre cliente. Dei o nome de DALClientes no qual tem como pai a classe de conexãoBD.
É preciso declarar a classe cliente: Cliente cliente;
Embaixo iremos fazer um com comando Insert normal, basta seguir o exemplo abaixo. Vamos passar por parametro cada dado que esta em values, certo?

SqlException: Ocorreu uma exceção ao executar o comando em uma linha bloqueada. Essa exceção não é gerada quando você estiver usando o Microsoft. NET Framework versão 1.0.
Um tempo limite ocorreu durante uma operação de streaming. Para mais informações sobre streaming, ver suporte para streaming SqlClient .
Você pode usar o ExecuteNonQuery para executar operações de catálogo (por exemplo, consultando a estrutura de um banco de dados ou a criação de objetos de banco de dados como tabelas), ou para alterar os dados em um banco de dados sem usar um DataSet , executando UPDATE, INSERT ou DELETE.
Embora o ExecuteNonQuery não retorna linhas, todos os parâmetros de saída ou retornar valores mapeados para os parâmetros são preenchidos com dados.
Há no exemplo abaixo eu estou fazendo uma verificação se o banco está ou não conectado. Lembrando que existem várias maneiras de programar.

Acredito que meu código esteja bem facil o entendimento. Dúvidas? Poste comentário ou enviei email.

 class DALClientes : conexaoBD
    {
        Cliente cliente;
        public bool InsertClient(Cliente cliente)
        {
            vsql = "INSERT INTO Clientes(nome, endereco, telefone, datNasc, email, observacoes)" + "VALUES(@nome, @endereco, @telefone, @datNasc, @email, @observacoes)";
            //Definição do comando SQL
            SqlCommand comando = null;
            if (this.conectar())
            {
                try
                {
                    comando = new SqlCommand(vsql, objConexao);
                    //passando o parametro para propriedade
                    comando.Parameters.Add(new SqlParameter("@nome", cliente.Nome));
                    comando.Parameters.Add(new SqlParameter("@endereco", cliente.Endereco));
                    comando.Parameters.Add(new SqlParameter("@telefone", cliente.Telefone));
                    comando.Parameters.Add(new SqlParameter("@datNasc", cliente.DatNasc));
                    comando.Parameters.Add(new SqlParameter("@email", cliente.Email));
                    comando.Parameters.Add(new SqlParameter("@observacoes", cliente.Observacoes));

                    comando.ExecuteNonQuery();
                    objConexao.Close();

                    return true;
                }
                catch (SqlException ex)
                {
                    throw ex;
                }
                finally
                {
                    this.desconectar();
                }
            }
            else
            {
                return false;
            }
        }
}


Clique do botão cadastrar, dá uma olhadinha como ficou.
Estou instanciando minha classe DALCLientes e Clientes. Após isto estou convertendo os campos passando das propriedades para o text.


        private void btnCad_Click(object sender, EventArgs e)
        {
            try
            {
                //instanciando as Classes
                DALClientes DALclientes = new DALClientes();
                Cliente cliente = new Cliente();
                //converter campos passando propriedades para text
                cliente.Nome = Convert.ToString(this.textNome.Text);
                cliente.Endereco = Convert.ToString(this.textEnd.Text);
                cliente.Telefone = Convert.ToString(this.textTel.Text);
                cliente.DatNasc = Convert.ToDateTime(this.textDatNasc.Text);
                cliente.Email = Convert.ToString(this.textEmail.Text);
                cliente.Observacoes = Convert.ToString(this.textObs.Text);
                //chamando a função Insert atraves da classe DAOClientes
                DALclientes.InsertClient(cliente);
                MessageBox.Show("Cadastrado, com sucesso!");
            }
            catch (SqlException ex)
            {
                MessageBox.Show("Error: " + ex.Message);
            }
            finally
            {
                //LimpaCampos
                LimpaCampos();
            }
        }
Share
Tweet
Pin
Share
No comentários

Cláusula WITH OWNERACCESS OPTION  
A declaração WITH OWNERACCESS OPTION é opcional. O exemplo abaixo habilita o usuário a ver as informações de salário (mesmo que não tenha outra permissão para ver a tabela Folha de Pagamentos) desde que o proprietário da consulta tenha tal permissão:  
SELECT Sobrenome, Nome, Salário FROM Funcionários
ORDER BY Sobrenome WITH OWNERACCESS OPTION;
Se, por outro lado, um usuário for impedido de criar ou anexar a uma tabela, você poderá usar WITH OWNERACCESS OPTION para habilitá-lo a executar uma consulta construção de tabela ou consulta anexação. Se você quiser reforçar as configurações de segurança do grupo de trabalho e as permissões dos usuários, não inclua a declaração WITH OWNERACCESS OPTION. Esta opção exige que você tenha acesso ao arquivo System.mda associado ao banco de dados. É realmente útil em implementações de multiusuários seguras. 
Share
Tweet
Pin
Share
No comentários

Cláusula ORDER BY  
ORDER BY é opcional. Entretanto, se você quiser exibir seus dados na ordem classificada, você deve utilizar ORDER BY. O padrão ordem de classificação é ascendente (A a Z, 0 a 9). Os dois exemplos abaixo classificam os nomes dos funcionários pelo sobrenome.  
SELECT Sobrenome, Nome FROM Funcionários ORDER BY Sobrenome;
SELECT Sobrenome, Nome FROM Funcionários ORDER BY Sobrenome ASC;  
 Para classificar em ordem descendente (Z a A, 9 a 0), adicione a palavra reservada DESC ao final de cada campo que você quiser classificar em ordem descendente. O exemplo abaixo seleciona salários e os classifica em ordem descendente  
SELECT Sobrenome, Salário FROM Funcionários ORDER BY Salário DESC, Sobrenome;  
Se você especificar um campo que contém dados Memo ou OLE Objects na cláusula ORDER BY, um erro ocorrerá. O programa principal de banco de dados do Jet não classifica campos deste tipo.  ORDER BY é normalmente o último item em uma instrução SQL.   
Você pode incluir campos adicionais na cláusula ORDER BY. Os registros são classificados primeiro pelo primeiro campo listado depois de ORDER BY. Os registros que tiverem valores iguais naquele campo são classificados pelo valor no segundo campo listado e assim por diante. 
Share
Tweet
Pin
Share
No comentários

Cláusula HAVING  
HAVING é opcional. HAVING é semelhante a WHERE, que determina quais registros são selecionados. Depois que os registros são agrupados com GROUP BY, HAVING determina quais registros são exibidos:  
SELECT CategoriaID, Sum(UnidadesNoEstoque) FROM Produtos GROUP BY CategoriaID HAVING Sum(UnidadesNoEstoque) > 100 AND LIKE "BOS*";  
Uma cláusula HAVING pode conter até 40 expressões vinculadas por operadores lógicos, como And ou Or. 
Share
Tweet
Pin
Share
No comentários

Cláusula GROUP BY  
GROUP BY é opcional. Valores de resumo são omitidos se não houver qualquer função aggregate SQL na instrução SELECT. Os valores Null nos campos GROUP BY são agrupados e não omitidos. No entanto, os valores Null não são avaliados em qualquer função aggregate SQL. Use a cláusula WHERE para excluir linhas que você não quer agrupadas e use a cláusula HAVING para filtrar os registros após eles terem sido agrupados.  
A não ser que contenha dados Memo ou OLE Object, um campo na lista de campos GROUP BY pode fazer referência a qualquer campo em qualquer tabela listada na cláusula FROM. Mesmo que o campo não esteja incluído na instrução SELECT, fornecida a instrução SELECT, inclua pelo menos uma função SQL. O programa principal de banco de dados do Jet não pode agrupar campos Memo ou OLE Objects.   
Todos os campos na lista de campos SELECT devem ser incluídos na cláusula GROUP BY ou incluídos como argumentos em uma função aggregate SQL. 
Share
Tweet
Pin
Share
No comentários


USE nome_do_banco
GO

CREATE VIEW comedias
AS
     SELECT *     FROM  nome_da_tabela
     WHERE tipo = 'condição';

Share
Tweet
Pin
Share
No comentários

USE [nome_DB]
GO

ALTER TABLE dbo.Tabela ADD Nome_da_coluna INT DEFAULT(0) NOT NULL
GO
Share
Tweet
Pin
Share
No comentários

Enquanto eu criava algumas views, para um trabalho da faculdade eu tentei ordenar e me mostrou o seguinte erro.
Mensagem 1033, Nível 15, Estado 1, Procedimento VW_testando, Linha 8

A cláusula ORDER BY é inválida em exibições, funções embutidas, tabelas derivadas, subconsultas e expressões de tabela comuns, a menos que TOP, OFFSET ou FOR XML também esteja especificado.
E quando eu tentei Order em uma conta matemática ou Rank, ele aceitou com sucesso.
Então lá vai a dica, é possível ordenar somente contas matemáticas e Rank  Não pode ordenar uma View em outros casos.
Share
Tweet
Pin
Share
No comentários

Super indico esse site, tirou algumas dúvidas minhas.

http://www.ebah.com.br/content/ABAAABoFAAG/apostila-linguagem-sql
Share
Tweet
Pin
Share
No comentários
Como fazer um insert no SQL, então em varchar você pode por tanto uma string como números neste caso deve-se usar a Apóstrofe(aspas simples). Em casos numéricos usa sem apóstrofe.

USE Exemplo1GOINSERT INTO Produtos (DescricaoProduto , ValorProduto, QtdEstoque)     VALUES ('XBOX 360', 365060, 2)GO
USE [Exercicio_II]GOINSERT INTO Produtos (DescricaoProduto , ValorProduto, QtdEstoque) VALUES ('Batedeira', 29960, 34)GO
Perceberam como funciona o Insert? Não tem muito segredo.
Então eu não coloquei mascara no valor de Produto, porque eu não especifiquei nenhuma mascara para minha variável em questão.
Como saber se inseriu todos os dados certinhos, quando não aparece erros e também pode-se visualizar todos os dados inseridos por você.
Botão direito na tabela em questão, selecionar as 1000 linhas superiores.
E ai aparecera uma janela parecida com a minha, abaixo.
Share
Tweet
Pin
Share
No comentários
Vamos a algumas coisas que devemos usar como padrão em um banco.

Quando se refere a chaves primarias é certo usar abreviação PK de primary key.
Já a chave estrangeira usa-se o FK de foreign key.
Mais como saber se seu banco deu certo e está exatamente como foi pedido?
Então uma coisa que costumo fazer é criar um diagrama do banco, para então verificar se está tudo exatamente como eu deseja ou que foi solicitado para mim.
Uma duvida que eu tive logo quando iniciei com banco de dados foi, o que significa essa chave amarela. Ela se refere a relações de 1 para 1 e o simbolo do infinito e relação de N.
O que seria o identity é quando você quer que sua chave primaria tenha auto incremento, no caso do exemplo abaixo ele está contando de 1 em 1.
Observe como estou criando minha chave primaria:
ALTER TABLE Clientes ADD CONSTRAINT       PK_Clientes PRIMARY KEY CLUSTERED
Estou dizendo que minha PK é minha chave primaria e estou indicando qual variável é essa chave primaria.
Mais e a chave estrangeira como seria?
Olhe abaixo como fiz uma chave estrangeira  lembrando que a chave estrangeira é minha chave que tem relação com outra tabela.



ALTER TABLE Vendas ADD CONSTRAINT       FK_Vendas_Produtos FOREIGN KEY       (       FK_Produto       ) REFERENCES dbo.Produtos       (       CodProduto       ) ON UPDATE  NO ACTION        ON DELETE  NO ACTION   

GO

No caso do meu banco ficou assim:
 relação com outra tabela,

Dá uma olhadinha como ficou meu diagrama, somente verificando se esta tudo ok?!

Espero ter tirado algumas duvidas e ter ajudado!!
Caso tenham alguma dúvida, comente no post que responderei o quanto antes.
Vou usar um exemplo da minha atividade de faculdade como exemplo:

CREATE DATABASE BD_ExercicioII
GO

USE BD_ExercicioII
GO

BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
GO

CREATE TABLE Produtos
       (
       CodProduto int IDENTITY (1,1) NOT NULL,
       DescricaoProduto nvarchar(50) NULL,
       ValorProduto decimal(18, 0) NOT NULL,
       QtdEstoque int NOT NULL
       )  ON [PRIMARY]
GO
ALTER TABLE Produtos ADD CONSTRAINT
       PK_Produtos PRIMARY KEY CLUSTERED
       (
       CodProduto
       ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

GO
ALTER TABLE dbo.Produtos SET (LOCK_ESCALATION = TABLE)
GO
COMMIT
select Has_Perms_By_Name(N'Produtos', 'Object', 'ALTER') as ALT_Per, Has_Perms_By_Name(N'Produtos', 'Object', 'VIEW DEFINITION') as View_def_Per, Has_Perms_By_Name(N'dbo.Produtos', 'Object', 'CONTROL') as Contr_Per BEGIN TRANSACTION
GO
CREATE TABLE Clientes
       (
       CodCliente int IDENTITY (1,1) NOT NULL,
       NomeCliente nvarchar(100) NOT NULL,
       CI nvarchar(10) NULL,
       CPF nvarchar(13) NOT NULL,
       Telefone nvarchar(13) NOT NULL,
       Endereco nvarchar(150) NOT NULL
       )  ON [PRIMARY]
GO
ALTER TABLE Clientes ADD CONSTRAINT
       PK_Clientes PRIMARY KEY CLUSTERED
       (
       CodCliente
       ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

GO
ALTER TABLE Clientes SET (LOCK_ESCALATION = TABLE)
GO
COMMIT
select Has_Perms_By_Name(N'dbo.Clientes', 'Object', 'ALTER') as ALT_Per, Has_Perms_By_Name(N'dbo.Clientes', 'Object', 'VIEW DEFINITION') as View_def_Per, Has_Perms_By_Name(N'dbo.Clientes', 'Object', 'CONTROL') as Contr_Per BEGIN TRANSACTION
GO
CREATE TABLE Vendas
       (
       DataVenda datetime NOT NULL,
       FK_Cliente int NOT NULL,
       FK_Produto int NOT NULL,
       QtdVendida int NOT NULL,
       ValorVenda decimal(18, 0) NOT NULL
       )  ON [PRIMARY]
GO
ALTER TABLE Vendas ADD CONSTRAINT
       PK_Vendas PRIMARY KEY CLUSTERED
       (
       DataVenda
       ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

GO
ALTER TABLE Vendas ADD CONSTRAINT
       FK_Vendas_Produtos FOREIGN KEY
       (
       FK_Produto
       ) REFERENCES dbo.Produtos
       (
       CodProduto
       ) ON UPDATE  NO ACTION
        ON DELETE  NO ACTION
      
GO
ALTER TABLE Vendas ADD CONSTRAINT
       FK_Vendas_Clientes FOREIGN KEY
       (
       FK_Cliente
       ) REFERENCES dbo.Clientes
       (
       CodCliente
       ) ON UPDATE  NO ACTION
        ON DELETE  NO ACTION
GO
ALTER TABLE dbo.Vendas SET (LOCK_ESCALATION = TABLE)
GO
COMMIT
select Has_Perms_By_Name(N'dbo.Vendas', 'Object', 'ALTER') as ALT_Per, Has_Perms_By_Name(N'dbo.Vendas', 'Object', 'VIEW DEFINITION') as View_def_Per, Has_Perms_By_Name(N'dbo.Vendas', 'Object', 'CONTROL') as Contr_Per
Share
Tweet
Pin
Share
No comentários
Pode se dizer que qualquer sistema que reúna e mantenha organizada uma série de informações relacionadas a um determinado assunto em uma determinada ordem.
Como por exemplo uma lista de contatos, nela percebemos que todos os dados referentes a uma determinada pessoa estão na mesma linha, e isso chamamos de registro.
O tipo ou categoria de cada informação como nome, telefone, endereço, etc. Sobre uma pessoa está separada através de colunas as quais chamamos de campos.
Um sistema gerenciador de  banco de dados relacionais (SGBDR) é usado para armazenar vários tipos de dados que permite ás pessoas examinar de varias formas.
Características em comum com os banco de dados cliente-servidor. Tais características comuns são:

Todas as tabelas, indíces, consultas, relatórios e código são armazenados num único arquivo .MDB

Os campos de data suportam informação de hora.
Admite o armazenamento permanente de comandos SQL
é possível forçar a integridade referencial entre as tabelas.
Os camos suportam valores nulos (Null)

Um exemplo de tabela de banco de dados abaixo:

NomeEndereçoTelefone
Roberta OliveiraRua Israel Pinheiro, 12001111-1111
Cíntia VilelaRua Voluntários do Brasil, 12222-2222
Carlos Luiz MoraesRua D. Pedro II , 1233333-3333

Share
Tweet
Pin
Share
No comentários

UNSIGNED - Todos os tipos inteiros no MySQL podem ter o atributo opcional UNSIGNED. Quando queremos bloquear inserção de valores negativos em uma coluna utilizamos o parâmetro UNSIGNED. Ou seja, só serão aceitos no referido campo valores maiores ou iguais a zero. Por exemplo, uma coluna do tipo 

INT:
Faixa: de -2147483648 a 2147483647
Faixa UNSIGNED: de 0 a 4294967295
Outro exemplo, uma coluna do tipo TINYINT:
Faixa: de -128 até 127
Faixa UNSIGNED: 0 a 255

ZEROFILL - O atributo opcional ZEROFILL, preenche espaços em uma coluna, substituindo por zeros. Por exemplo, uma coluna declarada como INT(4) ZEROFILL, o valor 5 é recuperado como 0005.
Se você especificar para uma coluna numérica ZEROFILL, automaticamente o MySQL adiciona o atributo UNSIGNED a coluna.

No caso eu costumo usar nas chaves pois elas não podem ter valores negativos.
Mais um exemplo com UNSIGNED abaixo:
CREATE TABLE Clientes (idClient int(10)  UNSIGNED auto_increment NOT NULL, nome VARCHAR(100)  NOT NULL,  endereco VARCHAR(200) NOT NULL, bairro VARCHAR(50) NOT NULL, compl VARCHAR(30) NULL,  cep VARCHAR(10) NULL, cidade VARCHAR(80) NOT NULL, uf VARCHAR(2) NOT NULL, tel VARCHAR(13) NOT NULL, tel1 VARCHAR(13) NULL, cel VARCHAR(13) NULL, cel1 VARCHAR(13) NULL, email VARCHAR(350) NULL,
cpf VARCHAR(14) NULL, rg VARCHAR(10) NULL, cnpj VARCHAR(20) NULL, tipoPessoa BIT NULL,
datNasc DATE NULL, datCad DATE NOT NULL auto_increment,
PRIMARY KEY(idClient));
Estou utilizando o UNSIGNED e também um auto incremento, porque eu quero que cria automático para mim as id de cada cliente.
Share
Tweet
Pin
Share
No comentários

About Me

Minha foto
Cíntia
Ver meu perfil completo

Follow Us

  • Facebook
  • Twitter
  • Instagram
  • Google +
  • Pinterest
  • Youtube

Categories

  • .NET
  • Android
  • Banco de Dados
  • C
  • C#
  • culinaria-fitness
  • Dicas
  • DIY
  • Eventos
  • Faça Você Mesmo
  • Java
  • Linguagem de Programação
  • Lógica de Programação
  • outros
  • TI
  • Tutorial

recent posts

Sponsor

Cíntia é uma desenvolvedora da plataforma C#, passa maior parte do seu tempo para aprender novas tecnologias e linguagens. Ela tem como grande interesse no desenvolvimento web e BD. Desde os 16 anos, quando ganhou seu primeiro computador, já sonhava em ser desenvolvedora ou escritora. Alguns anos após fez muitos cursos da área de informática. Atualmente é universitária do curso de Sistema de Informação na Faculdade Vale do Rio Doce em Governador Valadares/MG. Entusiasmada com desenvolvimento, busca cada vez mais aprender mais linguagens e criar novas ideias para projetos.

Facebook

It Girl TI

Blog Archive

  • ▼  2020 ( 2 )
    • ▼  04/26 - 05/03 ( 1 )
      • Como abrir arquivo RAR no Mac OS X
    • ►  03/15 - 03/22 ( 1 )
  • ►  2019 ( 3 )
    • ►  05/05 - 05/12 ( 3 )
  • ►  2017 ( 6 )
    • ►  08/13 - 08/20 ( 1 )
    • ►  07/09 - 07/16 ( 1 )
    • ►  06/18 - 06/25 ( 4 )
  • ►  2014 ( 2 )
    • ►  02/23 - 03/02 ( 2 )
  • ►  2013 ( 46 )
    • ►  06/09 - 06/16 ( 1 )
    • ►  05/19 - 05/26 ( 1 )
    • ►  05/12 - 05/19 ( 3 )
    • ►  05/05 - 05/12 ( 2 )
    • ►  04/28 - 05/05 ( 2 )
    • ►  04/21 - 04/28 ( 2 )
    • ►  04/14 - 04/21 ( 7 )
    • ►  03/24 - 03/31 ( 28 )

Carregando...

Created with by ThemeXpose