标签: sql-server-ce

SQL Server Compact Edition中的子查询

我试图在SQL Server CE数据库中执行此操作,但数据库引擎会报告错误.

SELECT  C.guid, C.name, C.updated, 
        C.hddsize, C.hddavailable, C.hddfree, 
        C.ramsize, C.profiles, C.cpu, 
        (SELECT COUNT(D.id) AS numprogs 
            FROM ComputerData AS D 
            WHERE D.computer_id = C.id) AS numprograms 
FROM Computers AS C;
Run Code Online (Sandbox Code Playgroud)

我被告知SQL Server CE支持子查询.有什么我做错了吗?

sql sql-server-ce

6
推荐指数
2
解决办法
2万
查看次数

在SQL Server CE中批量插入

我是SQL Server CE的新手,并使用Visual Studio 2008,SQL Server CE 3.5.我想知道将批量记录插入SQL Server CE数据库的最佳方法是什么?BULK INSERT语句是否适用于SQL Server CE?我有近45个表,其中一些表应该有大量数据.使用command.Prepare是否足够或是否有更高效和快捷的方式?

.net sql-server sql-server-ce

6
推荐指数
2
解决办法
1万
查看次数

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

有没有人知道如何在SQL Server CE数据库中存储图像?

该列应该是什么数据类型?(我猜二进制.)

我使用Linq-To-Datasets.有可能使用它将图像放入数据库并在以后再次将其拉出来吗?

谢谢你的建议.


我是这样做的:

MemoryStream stream = new MemoryStream();
myBitmapImage.Save(stream, ImageFormat.Png);
myInsertLinqToDataSetRow.IMAGE_COLUMN = stream.ToArray();
Run Code Online (Sandbox Code Playgroud)

要重新加载它我做了这个:

MemoryStream stream = new MemoryStream(myLinqToDataSetRow.IMAGE_COLUMN);
myBitmapImage.SignatureImage = new Bitmap(stream);
Run Code Online (Sandbox Code Playgroud)

我在MSDN上找到一个页面,表示Image列类型正在消失,你应该使用varbinary(MAX).SQL Server CE不支持Max,所以我做了varbinary(8000).

稍后注意:虽然SQL Server CE不支持varbinary(max).Varbinary(8000)对于许多图像来说都不够大.我确实最终使用了Image类型,即使它计划被弃用.一旦ms在移动平台上提供合理的交替,我将考虑切换.

c# compact-framework windows-mobile linq-to-dataset sql-server-ce

6
推荐指数
2
解决办法
1万
查看次数

SQL Server CE 4的数据库绘图工具

虽然VS2010中有GUI工具用于输入数据,对SQL CE4 db编写查询等,但似乎没有办法在digram中可视化数据库.

所以我的问题是

A)我错过了VS2010工具中的sql Server CE4

b)我可以使用SMSS来绘制SQL CE4数据库.我已经尝试了但它不允许打开数据库.有插件吗?

谢谢.

ssms diagramming visual-studio-2010 sql-server-ce

6
推荐指数
1
解决办法
4150
查看次数

如何使用SQL CE加速LINQ插入?

历史

我有一个"记录"列表(3,500),我保存到XML并在程序退出时压缩.以来:

  • 记录数量增加
  • 退出时只需要更新大约50条记录
  • 节省大约需要3秒钟

我需要另一个解决方案 - 嵌入式数据 我之所以选择SQL CE,是因为它与VS一起使用没有任何问题,许可证对我来说是好的(我把它比作Firebird,SQLite,EffiProz,db4oBerkeleyDB).

数据

记录结构:11个字段,其中2个构成主键(nvarchar + byte).其他记录是字节,数据时间,双精度和整数.

我不使用任何关系,连接,索引(主键除外),触发器,视图等.它实际上是平的字典 - 对键+值.我修改了其中一些,然后我必须在数据库中更新它们.我不时添加一些新的"记录",我需要存储(插入)它们.就这样.

LINQ方法

我有空白数据库(文件),所以我在一个循环(逐个)中进行3500插入.我甚至不检查记录是否已经存在,因为db是空白的.

执行时间处理时间?4分52秒 我昏了过去(记住你:XML + compress = 3秒).

SQL CE原始方法

我google了一下,尽管有这样的声明: LINQ to SQL(CE)速度与SqlCe 说明它是SQL CE本身的错误我试了一下.

相同的循环,但这次插入是使用SqlCeResultSet(DirectTable模式,请参阅:SQL Server CE中的批量插入)和SqlCeUpdatableRecord.

结果?你坐得舒服吗?好吧...... 0.3秒(是的,第二个的一小部分!).

问题

LINQ 非常易读,原始操作完全相反.我可以编写一个映射器,将所有列索引转换为有意义的名称,但它似乎重新发明轮子 - 毕竟它已经在... LINQ中完成了.

那么也许这是告诉LINQ加快速度的一种方式?问题 - 怎么做?

代码

LINQ

foreach (var entry in dict.Entries.Where(it => it.AlteredByLearning))
{
    PrimLibrary.Database.Progress record = null;

        record = new PrimLibrary.Database.Progress();
        record.Text …
Run Code Online (Sandbox Code Playgroud)

.net c# linq optimization sql-server-ce

6
推荐指数
2
解决办法
1558
查看次数

如何在调试CF.NET应用程序时禁用SQL Server Compact的自动部署?

我有一个问题,每当我调试(F5)我们正在开发的Compact Framework应用程序并且VS开始部署项目时,它总是会部署SQL Compact 3.5库.

问题与Visual Studio 2008非常相似:在调试时不要部署SQL Server Compact 3.5,除非它在Windows CE设备上没有发生,而是WM 6仿真器.

我已经尝试将目标平台升级到WM 6.0 Professional并手动安装所需的SQL Compact库,但它没有任何区别.

有趣的是,在我的情况下,问题不会出现在任何真实设备上,只能出现在模拟器上.

更新:似乎问题不是模拟器,而是WM版本特定.我在WM 6设备上遇到了同样的问题.它不会发生在WM 5上.

compact-framework windows-mobile sql-server-ce

6
推荐指数
1
解决办法
1124
查看次数

AppDomain.CurrentDomain.GetData("DataDirectory")始终返回Null

在我的程序中,我需要从默认位置复制模板数据库,据我所知,这将取决于我选择使用的安装程序.问题是我似乎无法读取| DataDirectory |的实际路径 我知道我应该使用AppDomain.CurrentDomain.GetData("DataDirectory"),但它总是在调试器中返回Null,这意味着我无法测试我的代码.我尝试了以下两种语法:

string sourcePath = AppDomain.CurrentDomain.GetData("DataDirectory").ToString();
Run Code Online (Sandbox Code Playgroud)

string defaultpath = Convert.ToString(AppDomain.CurrentDomain.GetData("DataDirectory"));
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?

感谢名单!

c# sql-server-ce datadirectory

6
推荐指数
1
解决办法
7470
查看次数

我可以访问保存在同一网络上的其他计算机上的sdf(SQL Server Compact数据库文件)吗?

我已经为SQL Server做了这样的事情,现在我正在尝试做SQL Server Compact.

我无法在SQL Server Compact中创建连接字符串,该字符串具有提供ip/server的功能.

c# database connection-string sql-server-ce

6
推荐指数
1
解决办法
1605
查看次数

如何在SQL Server中使用正则表达式?

是否有可能进行使用正则表达式功能集的高效查询.我的表格中的数据格式不正确,EX:-In Title colum:Cable180â"¬-"To90â"â€"串行ATA Cable和Id列123234+数据采用指数格式,可以在Sqlserver2008中使用正则表达式进行查询.

regex sql sql-server sql-server-2008 sql-server-ce

6
推荐指数
2
解决办法
3万
查看次数

实体框架代码的SQL Server Compact 4.0连接字符串首先?

我正在为Windows XP创建一个应用程序,所以我坚持使用.Net framework 4.0.我首先尝试使用SQL Server Compact和EF代码但是在出现错误时会出错update-database.

我希望将数据库放在我的代码目录中以部署在客户机器中.

这是我的连接字符串:

<add name="QuanLyKhoContext" 
     connectionString="Data Source=MyData.sdf;Persist Security Info=False;AttachDBFileName=MyData.sdf" 
     providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)

而错误:

此操作需要连接到"主"数据库.无法创建与"主"数据库的连接,因为已打开原始数据库连接并且已从连接字符串中删除凭据.提供未打开的连接.

c# entity-framework connection-string sql-server-ce ef-code-first

6
推荐指数
2
解决办法
2万
查看次数