Tag: sql server ce

将访问数据导入SQL Server CE(.mdb到.sdf)

我找到了一些文章和讨论如何从Access导入数据到SQL Server或SQL Server Express,而不是SQL Server CE。 我可以通过单独的连接访问VS数据库资源管理器中的Access数据和CE数据,但不知道如何将数据从一个移动到另一个。 (我正在使用c#。)有什么建议吗? 谢谢。

在sql server compact edition上执行Insert OR Update(upsert)

我有c#项目正在使用sqlserver压缩版和entity framework进行数据访问。 我需要向db插入或更新大量5000+或更多的行,因此如果密钥存在则更新记录(如果不插入)。 我无法找到一种方法来实现这一点与紧凑版和EF具有可怕的性能,即在核心i7计算机上花费2分钟。 我已经尝试搜索记录,看它是否存在,然后插入,如果没有,或更新,如果它,搜索是杀手。 我已经尝试编译搜索查询,但只做了一点改进。 我尝试的另一件事是在try catch中插入记录并且如果更新失败,但这迫使我在每条记录上保存更改以获得exception,而不是在最后是性能杀手。 显然我不能使用存储过程,因为它是紧凑版。 另外我看过只是直接在db上执行t-sql,但是在compact中缺少进程语句似乎排除了这一点。 我在全世界范围内搜寻和思考。 我真的想使用压缩,如果我可以过度表达部署的好处和能力,以防止用户挖掘数据库。 任何建议将不胜感激。 谢谢

以编程方式创建SQLCE数据库

[已编辑 – 有答案] 以下是我以编程方式创建SQL CE数据库的代码: /* get the Path */ var directoryName = System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); var fileName = System.IO.Path.Combine(directoryName, “Foo2Database.sdf”); /* check if exists */ if (File.Exists(fileName)) File.Delete(fileName); string connStr = @”Data Source = ” + fileName; /* create Database */ SqlCeEngine engine = new SqlCeEngine(connStr); engine.CreateDatabase(); /* create table and columns */ using (SqlCeConnection conn […]

将映像存储在SQL Server CE数据库中

有没有人知道如何在SQL Server CE数据库中存储图像? 该列应该是什么数据类型? (我猜二进制。) 我使用Linq-To-Datasets。 有可能使用它将图像放入数据库并稍后再将其拉出来吗? 谢谢你的建议。 我是这样做的: MemoryStream stream = new MemoryStream(); myBitmapImage.Save(stream, ImageFormat.Png); myInsertLinqToDataSetRow.IMAGE_COLUMN = stream.ToArray(); 要重新加载它我做了这个: MemoryStream stream = new MemoryStream(myLinqToDataSetRow.IMAGE_COLUMN); myBitmapImage.SignatureImage = new Bitmap(stream); 我在MSDN上找到一个页面,表示Image列类型正在消失,你应该使用varbinary(MAX)。 SQL Server CE不支持Max,所以我做了varbinary(8000)。 稍后注意:虽然SQL Server CE不支持varbinary(max)。 Varbinary(8000)对于许多图像来说都不够大。 我确实最终使用了Image类型,即使它计划被弃用。 一旦ms在移动平台上提供合理的交替,我将考虑切换。

在appdata文件夹中创建sql server压缩文件

我正在开发一个简单的软件,它首先使用Entity Framework代码,然后使用sql server compact 4.此时此设置正常工作。 entity framework创建sql server压缩文件(如果它尚不存在)。 数据库的路径是在一个连接字符串中定义的,该连接字符串存储在app.config文件中。 它是这样构建的: 但是,我想将数据库放在当前用户的Application Data文件夹(我的win7机器上的C:\ Users \ User \ AppData \ Roaming文件夹)中的文件夹中。 我已经尝试将connectionstring的数据源设置为%APPDATA%\ Database.sdf,但是这不起作用,我得到了“路径中的非法字符”exception。 我想坚持使用connectionstring方法,因为我想为我的unit testing使用不同的数据库而不是我的实际应用程序。 这样,通过在项目的根目录中放置app.config文件,可以轻松修改数据库。 有人能引导我朝着正确的方向前进吗?

在Windows Phone中的SQL Server CE中具有超过4000个字符的NTEXT

在Windows Phone中的SQL Server CE中具有超过4000个字符的NTEXT 我的Windows Phone应用程序中有一个数据库,其中一个表中有一个ntext字段,我正在尝试将一些内容写入此字段,但是我收到一条带有消息的InvalidOperationException : 字符串截断:max = 4000,len = 4621 我正在尝试使用ntext因为我知道nvarchar不接受超过4000个字符。 我已经搜索了一个解决方案,但我找不到任何解决方案。 我找到的唯一解决方案是我无法在Windows Phone上使用,因为它使用SqlConnection和SqlCommand与SqlDbType 。 以下是声明列的方式: private string _content; [Column(DbType=”ntext”)] public string Content { get { return _content; } set { if (value != _content) { _content = value; NotifyChange(o => o.Content); } } } 我插入它: cn.Articles.InsertAllOnSubmit(articlesToSave); cn.SubmitChanges(); 有谁知道任何解决方法? 谢谢你的答案!

SQL Compact Edition 3.5 – 不允许访问数据库文件

我使用SQL Server Compact 3.5开发了一个应用程序(100%本地,无法访问服务器),它在我的计算机上运行良好。 但是,当我在另一台计算机上部署它时,它显示以下错误: Access to the database file is not allowed. [ File name = data\BDApepucCE.sdf ] 我部署在Windows XP计算机上。 每当我尝试在数据库上写入时它都会显示此错误,但是,当我阅读时它会起作用。 我在Windows 7计算机上进行了测试,它的工作率为100%,除非通过家庭组(即本地网络)访问该文件,但在读取/写入时它都失败了。 平台:Windows 7,Visual Studio 2010和.NET 4 Client Profile

ASP.NET MVC3代码优先错误 – 尝试更新实体

我已经检查了这个问题 ,它似乎与我需要的东西有关,但并没有完全回答。 我有一个实体(Sql Compact使用EF Code First通过MVC3-如果标题不清楚的话)“问题”(通用问题跟踪,只是为了我自己的教育理解MVC3如何工作)。 Issue类具有CreatedBy属性(对创建问题的用户的Int引用)和CreatedDate属性(DateTime)。 当我使用scaffolded代码进行更新时(仅修改以防止某些更新的日期字段被用户修改): if (ModelState.IsValid) { issue.LastActivity = (DateTime?)DateTime.Now.Date; if (issue.ClosedBy != null) issue.ClosedDate = (DateTime?)DateTime.Now.Date; startingIssue = null; db.Entry(issue).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction(“Index”); } 我收到链接问题中提到的错误(将datetime2数据类型转换为日期时间数据类型等等) 当我单步执行代码时,看起来我的CreatedBy和CreatedDate属性不包含在控制器传递的issue实例中。 当我尝试通过从数据库中获取问题的另一个副本并将其更新为值来解决此问题时: var startingIssue = db.Issues.Find(issue.IssueId); if (ModelState.IsValid) { if (issue.CreatedBy != startingIssue.CreatedBy) issue.CreatedBy = startingIssue.CreatedBy; if (issue.CreatedDate != startingIssue.CreatedDate) issue.CreatedDate = startingIssue.CreatedDate; […]

动态创建.mdf / .sdf数据库

如何使用“代码”创建一个新的.mdf / .sdf数据库? 我试过这个: http : //support.microsoft.com/kb/307283 所有这一切都是在ConnectionString上失败的。 由于在创建之前我没有与存在的文件的连接,我怎么才能只创建一个mdf / sdf数据库来连接到SQL Express Server? 我希望能够只连接到服务器并创建文件,从那里可能更容易创建表等。 有什么建议?

在INSERTION之后检查SQL Server CE数据库以进行应用程序评估

我有以下脚本插入SQL Server CE数据库 SqlCeConnection Con = new SqlCeConnection(); Con.ConnectionString = (@”Data Source=|DataDirectory|\Database.sdf;Password=Password;”); Con.Open(); SqlCeCommand Query = new SqlCeCommand(“INSERT INTO Users(ID,Name,FName,Address,MCode,MNum,Amount) VALUES(@ID,@Name,@FName,@Address,@Code,@Num,@Amount)”, Con) Query.Parameters.AddWithValue(“@ID”, ID + 1); Query.Parameters.AddWithValue(“@Name”, NBox.Text); Query.Parameters.AddWithValue(“@FName”, SOBox.Text); Query.Parameters.AddWithValue(“@Address”, AdBox.Text); Query.Parameters.AddWithValue(“@Code”, Convert.ToInt32(MCode.Text)); Query.Parameters.AddWithValue(“@Num”, Convert.ToInt32(MNum.Text)); Query.Parameters.AddWithValue(“@Amount”, Convert.ToInt32(AmBox.Text)); int rowsEffected=Query.ExecuteNonQuery(); MessageBox.Show(rowsEffected.ToString()); 插入消息框后显示rows affected=1这意味着数据已成功插入数据库我使用VC#2010作为文件复制属性将数据库文件移动到Debug/Bin/Release文件夹,当我在项目文件夹中检查我的数据库文件时在解决方案资源管理器外可以看到Bin/Release文件是空的,所以我无法检查它我想检查我的DB文件以进行评估,即数据是否正确插入其中 请告诉我如何做到这一点 谢谢!