Como faço para conectar a SDF em um dispositivo móvel da aplicação desktop?
-
06-07-2019 - |
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!
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.