Pergunta

C # WinForms .Net 3.5 para SQL CE 3.5 no Mobile 6.1 Dispositivo

Eu gostaria de fazer uma conexão a partir de um aplicativo de desktop para um banco de dados SDF no meu dispositivo Windows Mobile enquanto ele está conectado via ActiveSync. Visual Studio permite-me criar uma conexão de dados para o meu dispositivo. As conexões testa OK e eu posso ver os dados no banco de dados usando o Visual Studio.

Eu, então, criar um formulário e tentar preencher um DataGridView. Quando eu executo o programa eu recebo um erro que o caminho para a base de dados não é válido.

Como é que eu vou para especificar o caminho do dispositivo móvel na seqüência de conexão?

Na minha App.Config, eu tentei variações sobre o caminho, mas nenhum deles funciona:

connectionString="Data Source=Mobile Device\Program Files\SqlCeViaActiveSync\Orders.sdf"

connectionString="Data Source=\Mobile Device\Program Files\SqlCeViaActiveSync\Orders.sdf"

connectionString="Data Source=Program Files\SqlCeViaActiveSync\Orders.sdf"

connectionString="Data Source=\Program Files\SqlCeViaActiveSync\Orders.sdf"

Os completos de cadeia de ligação é parecido com isto:

<connectionStrings>
    <add name="SqlCeViaActiveSync.Properties.Settings.OrdersConnectionString"
        connectionString="Data Source=Mobile Device\Program Files\SqlCeViaActiveSync\Orders.sdf"
        providerName="Microsoft.SqlServerCe.Client.3.5" />
</connectionStrings>

Além disso, eu fiz uma referência a Microsoft.SqlServerCe.Client, como eu encontrei alguns artigos que diziam que era necessário.

Pode alguém me aponte para alguns artigos recentes / amostras ou deixe-me saber o que estou fazendo de errado?

Obrigado!

Foi útil?

Solução

Eu só descobri que as seguintes obras:

SqlCeConnection conn = new SqlCeConnection(@"Data Source='Mobile Device\Program Files\SqlCeViaActiveSync\Orders.sdf';");
        conn.Open();
        using (SqlCeTransaction trans = conn.BeginTransaction())
        {
            using (SqlCeCommand cmd = conn.CreateCommand())
            {
                cmd.CommandText = "SELECT [OrderNumber] FROM [Orders];";
                trans.Commit();
                SqlCeDataReader dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    this.listBox1.Items.Add((string)dr["OrderNumber"]);
                }

                MessageBox.Show(dr.RecordsAffected.ToString());
            }
        }
        conn.Close();

Não era exatamente o que eu estava procurando, mas vai trabalhar para esta aplicação.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top