none
Create Table em VB.NET RRS feed

  • Pergunta

  • Não estou conseguindo criar tabelas via código com o VS2010 e o SQLExpress 2012.

    Dim SQLCon As New SqlCeConnection("Data Source=Dados.sdf") Dim Comando As New SqlCeCommand Dim Query As String = ""

    Try SQLCon.Open() Query = "CREATE TABLE tblCliente(Codigo INT NOT NULL IDENTITY(1,1), PRIMARY KEY(Codigo), Nome CHAR(50),RG CHAR(20),CPF char(20),datanasc date,telefone char(20), telcom char(20), celular char(20), Endereco CHAR(50),bairro char(30), cidade char(30), cep char(20), estado char(2), contato char(50),site char(50), email char(50),referencia char(50),observacao char(100))" Comando = New SqlCeCommand(Query, SQLCon) Comando.ExecuteNonQuery() Catch ex As Exception Finally Try SQLCon.Close() Catch ex As Exception End Try End Try

    O problema é que ele me dá vários erros:

    Um dos erros é "O tipo de dados VARCHAR não é válido"
    Outro erro: "O tipo de dado especificado CHAR não é válido"
    Também não está aceitando o "IDENTITY(1,1)" nem o "AUTO_INCREMENT". Ele sempre diz que há um erro nesta linha quando estes parâmetros são colocados.

    Se alguém puder me ajudar, pode ser em VB.NET ou em C#, fico muito grato.

    quarta-feira, 2 de janeiro de 2013 13:51

Respostas

Todas as Respostas

  • O problema nao é o codigo em VB e sim a instuçao SQL Server que está errada. Voce nao pode criar uma primary key deste jeito.

    A instruçao correta para isso é:

     Query = "CREATE TABLE tblCliente(Codigo INT  IDENTITY(1,1) NOT NULL, Nome CHAR(50),RG CHAR(20),CPF char(20),datanasc DATETIME,telefone char(20), telcom char(20), celular char(20), Endereco CHAR(50),bairro char(30), cidade char(30), cep char(20), estado char(2), contato char(50),site char(50), email char(50),referencia char(50),observacao char(100),
    CONSTRAINT [PK_tblCliente] PRIMARY KEY CLUSTERED
    ([Codigo] ASC))"
      

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée


    quarta-feira, 2 de janeiro de 2013 14:13
    Moderador
  • Olá, Obrigado por responder.

    Quando utilizo a minha instrução SQL no Management Studio, ela funciona corretamente, cria a tabela, cria todas as colunas sem dar erro.

    Mas utilizei a sua instrução (Copiei e colei no meu código) e continua com o mesmo problema, insistindo em dizer qua o tipo de dado CHAR não é válido

    Veja a figura

    Obrigado mais uma vez.

    quarta-feira, 2 de janeiro de 2013 14:23
  • Ok... mas vc esta usando SQL Compact edition... O SQLCe nao permite o uso do Char.. vc vai ter que usar o NCHAR (char unicode)  para isso. Isso se deve ao fato que o SQLCe é simplificado e nao tem suporte a encondigs (creio eu)

    Veja este artigo da microsoft (em ingles) que trata dos tipos validos para o SQL Ce

    http://msdn.microsoft.com/en-us/library/aa275635(v=sql.80).aspx

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    • Marcado como Resposta Oliveira Leal quarta-feira, 2 de janeiro de 2013 17:28
    quarta-feira, 2 de janeiro de 2013 15:10
    Moderador
  • Resolvido.

    Como você falou, mudei o SQLServerCe para o SQLClient e funcionou.

    Confesso que trabalho há anos com o SQL e esta foi a primeira vez que utilizo o SQLServerCe e não sabia desta limitação.

    Obrigado.

    quarta-feira, 2 de janeiro de 2013 17:28