我试图在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 Server CE的新手,并使用Visual Studio 2008,SQL Server CE 3.5.我想知道将批量记录插入SQL Server CE数据库的最佳方法是什么?BULK INSERT语句是否适用于SQL Server CE?我有近45个表,其中一些表应该有大量数据.使用command.Prepare是否足够或是否有更高效和快捷的方式?
有没有人知道如何在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
虽然VS2010中有GUI工具用于输入数据,对SQL CE4 db编写查询等,但似乎没有办法在digram中可视化数据库.
所以我的问题是
A)我错过了VS2010工具中的sql Server CE4
b)我可以使用SMSS来绘制SQL CE4数据库.我已经尝试了但它不允许打开数据库.有插件吗?
谢谢.
历史
我有一个"记录"列表(3,500),我保存到XML并在程序退出时压缩.以来:
我需要另一个解决方案 - 嵌入式数据 我之所以选择SQL CE,是因为它与VS一起使用没有任何问题,许可证对我来说是好的(我把它比作Firebird,SQLite,EffiProz,db4o和BerkeleyDB).
数据
记录结构: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) 我有一个问题,每当我调试(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上.
在我的程序中,我需要从默认位置复制模板数据库,据我所知,这将取决于我选择使用的安装程序.问题是我似乎无法读取| 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)
难道我做错了什么?
感谢名单!
我已经为SQL Server做了这样的事情,现在我正在尝试做SQL Server Compact.
我无法在SQL Server Compact中创建连接字符串,该字符串具有提供ip/server的功能.
是否有可能进行使用正则表达式功能集的高效查询.我的表格中的数据格式不正确,EX:-In Title colum:Cable180â"¬-"To90â"â€"串行ATA Cable和Id列123234+数据采用指数格式,可以在Sqlserver2008中使用正则表达式进行查询.
我正在为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
sql-server-ce ×10
c# ×5
.net ×2
sql ×2
sql-server ×2
database ×1
diagramming ×1
linq ×1
optimization ×1
regex ×1
ssms ×1