Tag: sql server ce

同一配置文件中有两个不同的提供程序

我正在使用EntityFramework 6.1.0 我有2个提供者 。 MysqlClient和SQLServerCE,我需要创建2个不同的DBContext。 这迫使我创建了2个配置类,因为mysql有一些不同的东西。 但是当我初始化应用程序时, Database.DefaultConnectionFactory来自defaultConnectionFactory(配置文件) ,并且我无法指定在daterminated Context上采用什么提供程序。 怎么做? 我的配置文件: Mysql上下文: namespace Sistema.DataAccess { [DbConfigurationType(typeof(Sistema.DataAccess.Migrations.Configuration))] public class SistemaContext : Sistema.Common.Repository.DataContext { static SistemaContext() { Database.SetInitializer(new MigrateDatabaseToLatestVersion()); } public SistemaContext() : base(GetConnectionString()) { } private static string GetConnectionString() { return “Server=127.0.0.1;Database=?????;Uid=????;Pwd=????;Port=3306;”;//MySQL } } } SQLCe背景: namespace Sistema.DataAccess { [DbConfigurationType(typeof(Sistema.DataAccess.Migrations.Configuration2))] public class SistemaContext2 : Sistema.Common.Repository.DataContext […]

在WPF中使用EF Code First和SqlCe

我正在尝试在我的WPF应用程序中使用EF Code First,我的想法是在AppData / MyApp中创建一个SqlCe Db(如果没有),并将其与EF Code First一起使用。 当我尝试从它应该创建的数据库中读取数据时,它正在给出错误,但是当我检查数据库上下文对象时,我看到它正在尝试在SqlExpress中创建它。 首先,我如何设置它与CE而不是SqlExpress一起使用并设置文件位置? 我尝试更改app.config中的连接字符串,但无法使其工作(它没有创建sdf文件),而且我不知道如何设置连接字符串路径到AppData文件夹,因为它在用户文件夹中(不固定)。 从未使用过SqlCe或EF Code First,所以欢迎任何帮助和赞赏。 提前致谢。

使用SQLCeResultSet更新/插入表

我有一个SQL Compact Edition数据库,我定期更新(通过Web服务)。 我写入数据库的部分花了太长时间。 我目前正在使用Linq to Datasets(如本问题所示 )。 我听说如果我使用SQLCeResultSet这样做会更快。 所以,鉴于我有一个这样的表: tblClient + – CLIENT_ID {唯一标识符}(主键) + – CLIENT_NAME {varchar(100)} + – CLIENT_ACTIVE {bit} 我从我的Web服务获得的对象看起来像这样: class Client { public Guid ClientID { get; set; } public String ClientName { get; set; } public bool Active { get; set; } } 如何将100个Client对象导入数据库? 更新现有行并插入数据库中尚未存在的行(由主键确定)? 任何示例代码都会很棒。 我有一个SqlCeConnection ,但没有别的。 谢谢你的帮助!

确定SQL Server CE中是否存在表?

我知道这与这个问题类似,但我在C#中使用SQL Server CE 3.5和WinForms项目。 如何确定表是否存在? 我知道虽然EXISTS是,但不支持IF关键字。 information_schema是否存在于我可以查询它的CE中? 谢谢。

在SQL Server CE中将一列拆分为两列

我正在使用C#与VS2010进行一个项目。 我有一个本地数据库(.sdf文件)。 以下是我的数据库的示例内容: 列1 Ned Stark Tyrion Lannister Daenerys Targaryen Robert Baratheon 我想要做的是将名称和姓氏分成两个不同的列,如下所示: 姓名 姓氏 Ned Stark Tyrion Lannister Daenerys Targaryen Robert Baratheon 由于我使用的是SQL Server CE 3.5版 ,因此LEFT,MIDfunction对我不起作用。 那么,我该怎么做?

我可以连接到远程SQLCe数据库吗?

我们在远程计算机上有一个SQL Ce数据库,我们试图通过c#获取报告系统(使用自定义LINQ查询)以共享读取模式连接到数据库。 此时,即使数据库没有其他连接,我们也会收到“存在文件共享冲突”的exception。 我们的sql连接字符串因此出现: using (SqlCeConnection conn = new SqlCeConnection( “Data Source=\\\\telemetry\\C$\\users\\usermetrics.sdf; File Mode=shared read;)) { conn.Open( ); // => exception here … 这有可能吗?

“从SQL Server CE获取@@ Identity时”解析查询时出错“

我正在编写一个简单的桌面应用程序,我正在使用本地SQL数据库(SQL Server CE)。 这是有问题的部分: SqlCeConnection conn = new SqlCeConnection(“Data Source=|DataDirectory|\\App_Data\\Rosters.sdf”); System.Data.SqlServerCe.SqlCeCommand cmd = new SqlCeCommand(); cmd.Connection = conn; cmd.CommandText = String.Format(“Insert into Teams (LeagueID, TeamName, Color) values ({0},'{1}’,'{2}’);SELECT @@IDENTITY;”, leagueID, txtTeamName.Text.Replace(“‘”, “””), txtColor.Text.Replace(“‘”, “””)); conn.Open(); int teamID = (int)cmd.ExecuteScalar(); conn.Close(); 问题是我在调用cmd.ExecuteScalar时遇到exception。 exception消息显示, {“解析查询时出错。[令牌行号= 1,令牌行偏移= 97,令牌错误=选择]”} 我通过直接查询在完全相同的数据库中运行完全相同的命令,它运行正常 – 这让我觉得问题不在于SQL Server CE。 任何帮助将不胜感激。

为什么我们需要SqlCeCommand.Parameters.AddWithValue()来插入一个值?

我有一个C#WPF桌面应用程序,它使用SQL Compact 3.5作为其嵌入式数据库。 在它的插入function using (SqlCeCommand com = new SqlCeCommand( “INSERT INTO FooTable VALUES(@num)”, con)) { com.Parameters.AddWithValue(“@num”, num); com.ExecuteNonQuery(); } 我没有得到com.Parameters.AddWithValue()的内容。 我注释掉了这行代码,插入函数运行完全相同。 我以为ExecuteNonQuery执行插入,那么这个Parameters.AddWithValue是什么东西?

SqlCeConnection以什么格式期望其连接字符串arg?

我有一个失败的SqlCeConnection.Open()调用。 我得到的exception消息非常通用:“System.Data.SqlserverCe.SqlCeException”(比漂亮的更通用) 相关代码是: private DBConnection() { try { string conStr = “Data Source = ” + filename; string cmpStr = conStr + “.tmp”; if (File.Exists(filename+”.tmp”)) File.Delete(filename+”.tmp”); engine = new SqlCeEngine(conStr); if (File.Exists(filename)) { } else { engine.CreateDatabase(); } engine.Dispose(); objCon = new SqlCeConnection(conStr); //MessageBox.Show(string.Format(“conStr == {0}”, conStr)); objCon.Open(); // <= This is where all Dallas […]

未存储本地数据库插入

这可能是我的一个愚蠢的错误..但我似乎无法理解它。 我创建了一个新的空C#Windows窗体应用程序。 我添加了一个数据库(基于数据集),并将该文件存储在我的解决方案资源管理器中。 我添加了一个表名为Test的表。 我使用new SqlCeCommand(“insert into Test values(‘Name’)”, new SqlCeConnection(ConfigurationManager.ConnectionStrings[“ConnectionString”].ConnectionString)).ExecuteNonQuery();添加记录new SqlCeCommand(“insert into Test values(‘Name’)”, new SqlCeConnection(ConfigurationManager.ConnectionStrings[“ConnectionString”].ConnectionString)).ExecuteNonQuery(); 但是,我甚至尝试检索相同的数据,这一切都完美无缺。 但是当我停止我的项目并重建它时……所有数据都再次消失了? 有没有办法解决这个问题,或者当我开始使用这个项目时,它会自行修复(没有一天500次重建?)