Por que eu recebo erro de compartilhamento de arquivos Se o SQL Compact permite várias conexões?

StackOverflow https://stackoverflow.com/questions/427888

  •  06-07-2019
  •  | 
  •  

Pergunta

Aqui , diz-se que o SQL Server Compact permite que até 256 ligações.

Mas quando eu tento abrir 2 conexões, recebo um erro de compartilhamento de arquivos. Como posso resolver isso?

SqlCeConnection c1 = new SqlCeConnection("Data Source=testDB.sdf;Encrypt Database=True;Password=test;File Mode=shared read;Persist Security Info=False;");
SqlCeConnection c2 = new SqlCeConnection("Data Source=testDB.sdf;Encrypt Database=True;Password=test;File Mode=shared read;Persist Security Info=False;");
c1.Open();
c2.Open(); // throws SqlCeException
c1.Close();
c2.Close();

Há uma violação de compartilhamento de arquivos. Um processo diferente pode estar usando o arquivo. [TestDB.sdf]

Foi útil?

Solução

Esta era uma questão de seqüência de conexão.

File Mode=Read Write

resolveu o problema.

Outras dicas

Ao examinar este problema, eu encontrar alguns recursos e este post. Talvez alguém vai precisar dele, por isso deixo o que eu encontrar aqui.

de acordo com o MSDN disse , se não File Mode atribuído, ele usará Read Write por padrão.

E, se a necessidade de abrir um db Read Only, este post disse que dois parâmetros devem ser atribuídos . Um deles é File Mode, e um é Temp Path.

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