我是在 VB.net 2012 中使用 SQL Compact Edition 的新手。
我遇到了以下网站,希望可以帮助我入门:http : //sharecom-clemo.blogspot.com.au/2012/05/code-sample-demonstrating-how-to_07.html
但是它说“转到项目属性的引用页面并首先引用 SQL Server CE 程序集。然后您可以导入 SQL Server CE 命名空间。
我希望通过单击“项目”>“添加引用”来执行此操作是正确的
然后选择“Microsoft SQL Server Compact Control”。
但是,在选择并单击“确定”时,我会收到一个错误,不允许我添加它,因为它说它无法注册ActiveX类型库。

有谁知道我做错了什么,这是我应该做的吗?
我从测试应用程序复制了一些代码:
const string sdfPath = @"C:\WebAPIClient\WebAPIClient\bin\Debug\DBPlatypusCompactDB.sdf";
string dataSource = string.Format("Data Source={0}", sdfPath);
int countAdded = 0;
if (!File.Exists(sdfPath))
. . .
Run Code Online (Sandbox Code Playgroud)
......在那里工作得很好; 但是在尝试转换它以便在将在Windows CE设备上运行的项目中使用时:
const string sdfPath = @"Computer\WindowsCE\\\Program Files\hhs\DBPlatypusCompactDB.sdf";
. . .
Run Code Online (Sandbox Code Playgroud)
...(这是我从Windows资源管理器(部署了exe的文件夹,没有子文件夹)复制的路径),我得到"路径未找到"或"路径无效"或类似的东西.
我如何指定路径?
c# filepath windows-ce sql-server-ce windows-embedded-compact
我想datetime使用 Microsoft Webmatrix 3 中的 SQL Server Compact Edition 将值插入数据库。
我尝试了以下查询:
INSERT INTO Tutorials ([Tutorial], [StartDate])
VALUES ('3d', CONVERT(DATETIME, '07-23-08', 110));
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
不支持转换。[要转换的类型(如果已知)= datetime,要转换的类型(如果已知)= float ]
我有一个代表货物批次号的字符串,例如“0000AZA001B”。我只需要“AZA001B”部分。如何在 SQL Compact 中实现这一点?
silverlight clr是否支持访问置于silverlight应用程序隔离存储中的sql compact数据库?
如果是这样,任何指向代码示例的指针.
我想在之前的会话中缓存从服务器检索到的信息.
我在.NET Compact Framework 3.5中使用SQL Server CE 3.5和C#.在我的代码中,我插入一行,然后启动一个事务,然后从表中删除该行,然后对该事务进行回滚.但这并没有撤消删除.为什么不?这是我的代码:
SqlCeConnection conn = ConnectionSingleton.Instance;
conn.Open();
UsersTable table = new UsersTable();
table.DeleteAll();
MessageBox.Show("user count in beginning after delete: " + table.CountAll());
table.Insert(
new User(){Id = 0, IsManager = true, Pwd = "1234", Username = "Me"});
MessageBox.Show("user count after insert: " + table.CountAll());
SqlCeTransaction transaction = conn.BeginTransaction();
table.DeleteAll();
transaction.Rollback();
transaction.Dispose();
MessageBox.Show("user count after rollback delete all: " + table.CountAll());
Run Code Online (Sandbox Code Playgroud)
消息表明一切都按预期工作,直到表的计数为0表示回滚未撤消删除.
在SQL Compact Edition 3.5中,请注意它是我所说的Compact Edition -有没有办法将行数限制为仅2?像使用LIMIT或TOP的东西.我真的不想对SqlCEDataReader或SqlCEResultSet使用任何东西.我想在查询中做所有限制.这可能吗?我环顾四周,似乎并非如此.
编辑-
为了回应Dave Swersky的数据请求并在某些列上使用Min()/ Max()作为获得前2行的方法,这里有一些样本(已消毒的)数据:
Line Site Function Status
1010 Las Vegas new 4
1020 DC send 1
1030 Portland copy 1
1040 SF copy 1
1050 Portland copy 1
1060 DC send 1
Run Code Online (Sandbox Code Playgroud)
*列数多于此,但这些是重要的.
很抱歉缺乏直观的数据(但实际数据更不直观!),但为了安全起见,我需要更改数据.
所以我需要确定:记录在前一行中的位置,以确定需要拾取的位置.
任何给定行上的站点(函数='new'的第一行除外)对应于项目下一步的位置.所以简单地从同一条线上抓住那个网站就不会告诉我它来自哪里.状态将始终为1或4. 4对应于已经交付的位置,因此我不希望在结果中包含这些记录.但它可能有助于获得取件网站.
对于这个数据表,我希望查询返回对应于第一行上方的行的状态为1的站点.因此,它将是拉斯维加斯.
这就是我尝试过的和失败的:
string sql = "... WHERE [personID] IN (@sqlIn) ...";
string sqlIn = "1,2,3,4,5";
SqlCeCommand cmd.Parameters.Add("@sqlIn", SqlDbType.NText).Value = sqlIn;
SqlCeDataAdapter da = new SqlCeDataAdapter(cmd);
da.Fill(ds); // > Error
Run Code Online (Sandbox Code Playgroud)
错误详情:
ntext和image数据类型不能在WHERE,HAVING,GROUP BY,ON或IN子句中使用,除非这些数据类型与LIKE或IS NULL谓词一起使用.
我不能将所有ID作为一个参数传递吗?我应该逐个添加所有ID吗?
PS:注意SqlCE
这是约.我正在使用的代码.
public class Note {
public virtual Customer Customer { get; set; }
public virtual User User { get; set; }
public ICollection<NoteComment> Comments { get; set; }
}
public class NoteComment {
public virtual User User { get; set; }
}
public class User {
public ICollection<Note> Notes { get; set; }
}
public class Customer {}
// --------------------------------------
public class OurDataContext {
private void ConfigureNotes(DbModelBuilder modelBuilder) {
modelBuilder.Entity<Note>()
.HasRequired<User>(n => n.User)
.WithMany(u => u.Notes)
.Map(a => a.MapKey("UserId"));
modelBuilder.Entity<Note>() …Run Code Online (Sandbox Code Playgroud) entity-framework circular-reference code-first sql-server-ce ef-code-first
当我有GUID字段时,有没有办法使用INSERT语句在SQL CE中插入行.
在C#中,我使用
ID = Guid.NewGuid()
Run Code Online (Sandbox Code Playgroud)
但在SQL控制台中,我找不到关键字来执行此操作.
我发现这一个:
> Insert into Customer (ID, Name) values ('f5c7181e-e117-4a98-bc06-733638a3a264','MyCustomer')
Run Code Online (Sandbox Code Playgroud)
如果要插入很多行怎么办?
sql-server-ce ×10
c# ×4
sql ×3
insert ×2
sql-server ×2
.net ×1
caching ×1
code-first ×1
datetime ×1
filepath ×1
guid ×1
silverlight ×1
string ×1
vb.net ×1
webmatrix ×1
windows-ce ×1