C# System.Data.Linq.dll中发生类型为“System.Data.SqlServerCe.SqlCeException”的未处理异常
我得到下面的错误,我不知道为什么,因为我的应用程序在4小时前运行正常,但现在不工作,我没有改变任何东西 类型的未处理异常 中出现“System.Data.SqlServerCe.SqlCeException” System.Data.Linq.dll 我在db.SubmitChanges;行中得到错误;。。我在下面留下完整的代码C# System.Data.Linq.dll中发生类型为“System.Data.SqlServerCe.SqlCeException”的未处理异常,c#,.net,linq,windows-phone-7,C#,.net,Linq,Windows Phone 7,我得到下面的错误,我不知道为什么,因为我的应用程序在4小时前运行正常,但现在不工作,我没有改变任何东西 类型的未处理异常 中出现“System.Data.SqlServerCe.SqlCeException” System.Data.Linq.dll 我在db.SubmitChanges;行中得到错误;。。我在下面留下完整的代码 using System; using System.Collections.Generic; using System.Linq; using System.Net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using System.IO.IsolatedStorage;
using System.IO;
using Microsoft.Phone.Shell;
using System.ComponentModel;
using System.Data.Linq;
using System.Collections.ObjectModel;
namespace Aplicativo_Windows_Phone
{
public partial class AddColetor : PhoneApplicationPage
{
string email;
public AddColetor()
{
InitializeComponent();
}
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
NavigationContext.QueryString.TryGetValue("email", out email);
}
private void btnAdd_Click_1(object sender, RoutedEventArgs e)
{
AppDataContext db = new AppDataContext();
Coletor coletor = new Coletor();
if (rdNorte.IsChecked == true)
{
coletor.Latitude = Convert.ToInt32(txtLat.Text);
}
else
{
coletor.Latitude = Convert.ToInt32(txtLat.Text) - (2 * Convert.ToInt32(txtLat.Text));
}
if (rdLeste.IsChecked == true)
{
coletor.Longitude = Convert.ToInt32(txtLong.Text);
}
else
{
coletor.Longitude = Convert.ToInt32(txtLong.Text) - (2 * Convert.ToInt32(txtLong.Text));
}
if (txtLat.Text != "" && txtLong.Text != "" && rdNorte.IsChecked == true || rdSul.IsChecked == true && rdLeste.IsChecked == true || rdOeste.IsChecked == true)
{
foreach (var pessoa in db.Pessoas)
{
if (pessoa.Email == email)
{
pessoa.Coletores.Add(coletor);
}
}
db.Coletores.InsertOnSubmit(coletor);
db.SubmitChanges();
NavigationService.Navigate(new Uri("/ColetoresPage.xaml", UriKind.RelativeOrAbsolute));
}
else
{
MessageBox.Show("Preencha todos os campos e marque as opções para adicionar um coletor");
}
}
private void btnCancel_Click_1(object sender, RoutedEventArgs e)
{
NavigationService.Navigate(new Uri("/ColetoresPage.xaml", UriKind.RelativeOrAbsolute));
}
}
}
Coletor类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Linq.Mapping;
using System.Data.Linq;
using Microsoft.Phone.Data.Linq;
using Microsoft.Phone.Data.Linq.Mapping;
namespace Aplicativo_Windows_Phone
{
#pragma warning disable 0169, 0649
[Table(Name = "Coletores")]
public class Coletor
{
[Column(IsPrimaryKey = true, IsDbGenerated = true)]
public int Id { get; set; }
[Column]
public float Latitude { get; set; }
[Column]
public float Longitude { get; set; }
[Column(Name = "Pessoa")]
private int? pessoaId;
private EntityRef<Pessoa> _pessoa = new EntityRef<Pessoa>();
[Association(Name = "FK_Coletores_ColetorPessoa", IsForeignKey = true, Storage = "_pessoa", ThisKey = "pessoaId")]
public Pessoa Pessoa
{
get { return _pessoa.Entity; }
set { _pessoa.Entity = value; }
}
private EntitySet<Ocorrencia> _ocorrencias = new EntitySet<Ocorrencia>();
[Association(Name = "FK_Ocorrencias_ColetorOcorrencias", Storage = "_ocorrencias", ThisKey = "Id", OtherKey = "coletorId")]
public ICollection<Ocorrencia> Ocorrencias
{
get { return (from co in ColetorOcorrencias select co.Ocorrencia).ToList(); }
set { _ocorrencias.Assign(value); }
}
private EntitySet<PessoaColetor> _pessoaColetores = new EntitySet<PessoaColetor>();
[Association(Name = "FK_PessoaColetores_Coletores", Storage = "_pessoaColetores", OtherKey = "coletorId", ThisKey = "Id")]
private ICollection<PessoaColetor> PessoaColetores
{
get { return _pessoaColetores; }
set { _pessoaColetores.Assign(value); }
}
private EntitySet<ColetorOcorrencia> _coletorOcorrencias = new EntitySet<ColetorOcorrencia>();
[Association(Name = "FK_ColetorOcorrencias_Coletores", Storage = "_coletorOcorrencias", OtherKey = "coletorId", ThisKey = "Id")]
private ICollection<ColetorOcorrencia> ColetorOcorrencias
{
get { return _coletorOcorrencias; }
set { _coletorOcorrencias.Assign(value); }
}
public ICollection<Pessoa> Pessoas
{
get { return (from pc in PessoaColetores select pc.Pessoa).ToList(); }
}
}
}
根据过去的经验,我将在这里冒险。SqlServerCE驱动程序有两种风格,x86和x64。通常情况下,机器上只能安装一个,而安装程序在第二个上会失败。但是,如果先安装x86驱动程序,然后安装x64,则可以在命令行上使用/force开关
这可能有助于解决您的问题,也可能不难从提供的详细信息中分辨出来。好的,我不知道为什么,但现在我的应用程序正在运行。我认为此错误是Visual Studio的一种错误,因此,为了解决我的问题,我刚刚重新启动了计算机。异常通常也包括一条消息。错误中是否提供了其他信息?实际上没有其他信息。我可以显示问题的图像,但我不知道如何在这里附加图像。什么是“coletor”?例如,您是否违反了任何约束唯一键?Coletor是一个类,我没有违反。。这很奇怪,因为我的程序运行正常,但是,突然,就停了。我将离开问题中的Coletor类;对吗?这是Windows Phone,运行的是ARM操作系统,没有任何可安装的驱动程序。你没有打电话给技术支持吗?你试过重新启动你的电脑吗?