Jump to content
rocks

ligação e publicação de app com Base de Dados

Recommended Posts

rocks

Boa noite,

Tenho de fazer uma aplicação para uma oficina com o objectivo de registar o cliente e o carro que vai reparar 

Comecei por criar a base de dados local dentro do visual studio 2017 .mdf 

Fiz a conexão e os testes as querys para testar tudo e funciona mas para exportar tenho de fazer a ligação/criação de outra maneira pois da maneira como fiz tenho o programa a ir buscar a uma pasta.

O meu objetivo e publicar o programa para instalar num pc de um cliente 

Como tenho de fazer a criação/ligação da BD

 

Exemplo codigo que tenho (carrega os dados na datagrid ao abrir a form ):

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using System.Data.Common;
using System.Configuration;
using System.Data.SqlClient;

private void Registos_Load(object sender, EventArgs e)
        {



             using (SqlConnection conn = new SqlConnection())
            {
                
               // conn.ConnectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Ricardo\Desktop\aj\sss\AJ\AJ\clientes_carros.mdf;Integrated Security=True";
               
                conn.ConnectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\clientes_carros.mdf;Initial Catalog=BD;Integrated Security=True";

                conn.Open();

            SqlDataAdapter da = new SqlDataAdapter();

                string sql = "select * from dados";
                da = new SqlDataAdapter(sql, conn);
                DataTable dt = new DataTable();
                da.Fill(dt);
                dataGridView1.DataSource = dt;

            }
        }

 

Obrigado 

Share this post


Link to post
Share on other sites
M6

Partindo do principio de que levas atrás o motor do SQLServer (caso contrário poderás ter de instalar o Express ou ter um SQL Server "a sério"), a tua questão é simples de resolver.

Tens duas hipóteses:

#1 ou colocas o caminho da base de dados relativo ao caminho da tua aplicação, por exemplo num subdiretório "db" da tua aplicação, ou

#2 tens um ficheiro de configuração que é criado durante a instalação e que indica o local da base de dados, (por exemplo um ficheiro .ini) e quando a tua aplicação arranca vai ver onde está a base de dados.

  • Vote 1

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
rocks
17 horas atrás, M6 disse:

Partindo do principio de que levas atrás o motor do SQLServer (caso contrário poderás ter de instalar o Express ou ter um SQL Server "a sério"), a tua questão é simples de resolver.

Tens duas hipóteses:

#1 ou colocas o caminho da base de dados relativo ao caminho da tua aplicação, por exemplo num subdiretório "db" da tua aplicação, ou

#2 tens um ficheiro de configuração que é criado durante a instalação e que indica o local da base de dados, (por exemplo um ficheiro .ini) e quando a tua aplicação arranca vai ver onde está a base de dados.

 

Ao publicar o programa umas das "funcionalidades " ponho para instalar juntamente com o programa é o SQL EXPRESS

Penso que a primeira opção é a melhor ou seja colocar o caminho da bd num subdiretorio da aplicação,

A minha questão é como fazer, ja tive a ver umas tópicos relativos à app.cofig e tambem aos caminhos de referencia será isso?? Se sim como o faço ?

 

Obrigado 

Share this post


Link to post
Share on other sites
rocks
<connectionStrings>
      <add name="clientes_carros" 

    connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\clientes_carros.mdf;Initial Catalog=clientes_carros;Integrated Security=True"/>

</connectionStrings>

 

                 conn.ConnectionString = ConfigurationManager.ConnectionStrings["clientes_carros"].ConnectionString;

 

 

Isto é o que tenho mas penso que desta maneira ainda não funciona, ainda nao conseguir testar mas acho que esta solução nao seja muito diferente da outra 

 

outra duvida ao publicar 

As features que escolho são o SQL Server 2012 Express LocalDB

Será so isto ?

 

 

Share this post


Link to post
Share on other sites
M6

O |DataDirectory| deverá ser suficiente.

Quando à distribuição, não te posso ajudar uma vez que nunca usei o Express, vais mesmo ter de fazer testes.

  • Vote 1

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.