问题标签 [sqlcedatareader]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
107 浏览

c# - C# SqlCeDataReader getValue of date 在同一个查询中返回不同的格式

我有以下代码

whenreader.GetValue(i)是一个datetime字段,有时返回,有时01/01/2014 0:00:00返回01/01/2014 12:00:00 a.m.

为什么会这样?然后将字符串值用于哈希码,因此我对同一行有不同的哈希值。

0 投票
1 回答
592 浏览

sql-server-ce - 为什么这个 SqlCeCommand ExecuteReader 调用失败?

我从 Wigley 和 Wheelwright 的“Microsoft .NET Compact Framework”改编了下面的代码:

...所以我的代码是这样的:

我尝试访问的数据库位于手持设备的“我的文档”文件夹中,名为“HHSDB003.sdf”

我的第一个 MessageBox.Show() 显示了这一点:

在此处输入图像描述

...这确实是数据库所在的位置:

在此处输入图像描述

我的第二个 MessageBox.Show() 显示了这一点:

在此处输入图像描述

...还有这样一张桌子:

在此处输入图像描述

我看到“Made it to pt 1”但没有看到“Made it to pt 2”,所以它在调用 ExecuteReader() 时肯定失败了——但为什么?

这是我看到的错误消息:

在此处输入图像描述

我将 NETCFv35.Messages.EN.wm.cab 复制到手持设备上 .exe 所在的文件夹中,但它仍然显示与上面相同的错误消息。我是否需要将它放在其他地方或以某种方式安装/设置它?2 单击它没有做任何事情,只是向我显示其中的文件。

compactf SqlCeCommand ExecuteReader SqlCeConnection SqlCeDataReader windowsce c#

更新

根据我在这里阅读的内容,我将路径/文件名放在单引号中,如下所示:

...但它没有任何区别。

更新 2

根据答案,我将代码更改为:

...但是在看到“Made it to pt 1”后我得到了一个例外 - 我从来没有看到“Made it to pt 2”

从 catch 块显示的异常消息不显示任何内容/空字符串。

掌上电脑的 My Documents 文件夹中有一个名为 HHSDB003.SDF 的数据库,它确实包含一个名为 ~ 的表;那么我在这里还缺少什么?

更新 3

我将 catch 块更改为:

...现在将空引用异常视为内部异常。???

更新 4

因为我在这里看到“Made it to pt 1”:

...conn 和 qry 必须没问题;那么为什么在 conn 上调用 open 会导致 NRE?

更新 5

我添加了这段代码来查看 SqlCeConnection 的 Database 和 DataSource 属性的值:

...我看到:

Database 和 DataSource 真的应该是一回事吗?

更新 6

我可能已经与其他地方/以前建立的数据库建立了“实时”(全局)连接;这会导致第二个连接崩溃吗?

我知道 [,] 这是糟糕的设计,但现在“就是这样”

更新 7

我从来没有接受过公开赛的号召——它比乔治·布雷特(George Brett)的球拍上的松焦油炸得更热。这是代码的相关部分:

显示的消息框(在“在 conn.Open() 之前完成”之前)是:

在此处输入图像描述

然后我看到“将尝试打开”,然后是 NRE。

更新 8

下面不仅是代码本身,还有调用它的代码。这是一个可能的代码重入问题吗?SendInventoryData() 中的第二个 foreach 循环是否会调用 getDataAsXMLFromTable() 而之前对 getDataAsXMLFromTable() 的调用尚未完成?情况似乎并非如此,因为我从未见过“在 conn.Open() 之后成功”——甚至一次也没有。看来如果这是问题,我至少会看到一次......

注意:使用此代码,我看到:

HHSDB003.SDF 中确实存在 INV12262006091415

更新 9

我尝试将 getDataAsXMLFromTable() 包装在锁中:

那没有帮助;这也没有:

现在奖励100。

更新 10

请参阅此处的更新 3:如何绕过 SQL Server CE 数据库上的“80004005 存在文件共享冲突......”错误消息?

0 投票
3 回答
581 浏览

c# - 在 C# RadioButtons 上显示 SQL 信息

我的 C# 程序连接到我的 SQL CE 数据库。我使用 SQLCEDATAREADER 来填充程序中的一些文本框。我的数据库中有一个“性别”列和一个带有男性和女性的单选按钮。如果我数据库中的某个条目在性别列中有“M”,我怎样才能使男性单选按钮显示为按下?

我试过了

那显然没有用。

0 投票
1 回答
464 浏览

dataset - 在 Windows Mobile 6.5 中查询 SQL Server CE 数据库文件的最快方法是什么?

.sdf在 Windows 移动设备上有一个需要查询的大型数据库文件。该文件有 40,000 条记录。我正在尝试缩短执行查询所需的时间。目前大约是 8 秒,这对于用户等待结果来说是很长的时间。

起初我一直在使用DataSet, 通过建立一个SqlCeConnection连接到数据集的填充适配器。也尝试与 类似DataTable,性能结果几乎相同。在大约 8 秒内使用DataSet或完成查询。DataTable

我尝试的最后一件事就是使用Reader(). 它给了我更好的结果,但只有半秒(查询在约 7.5 秒内完成)。

有什么想法可以让我更快吗?

0 投票
1 回答
1656 浏览

c# - WinCE7 0xc0000005 执行阅读器上的本机异常

我正在使用具有 .net Compact Framework 3.5 和 SQL Server CE 3.5SP1 的 VS2008 SP1 在 WinCE7.0 上为 Motorola MC32N0 开发一个简单的应用程序。

每当我尝试从数据库中读取数据时,都会出现此错误。

projectName.exe 中发生本机异常。选择退出,然后重新启动此程序或选择详细信息以获取更多信息。

当我进入细节时,我得到了这个

异常代码:0xc0000005
异常地址:0xc0000000
读取:0xc0000000
在 NativeMethods.GetKeyInfo(IntPtrpTx,字符串 pwszBase 表,IntPtr prgDbKeyInfo,Int32 cDbKeyInfo,IntPtr pError)
在 SqlCeDataReader.FillMetaData(SqlCeDataReader 阅读器,Int32 结果类型). .

它继续。这是数据库读取代码

当它达到这一点command.ExecuteReader()时,就会发生异常。

经过大量搜索后,有些人说这可能与 SQL Server CE 版本不匹配,但我该如何解决呢?部署应用程序时将一个文件复制到文件夹。如何检查它的版本或更改正在使用的 SQL Server CE 的版本?

0 投票
1 回答
98 浏览

c# - IINFORMATION_SCHEMA.KEY_COLUMN_USAGE Sql CE 的更新

添加/创建新索引后,如何确保更新 INFORMATION_SCHEMA.KEY_COLUMN_USAGE。IE:

我必须要数据库,一个是从旧版本 (V1)转换/更新到新版本 (V10),另一个是全新的 (V10)数据库。当我比较数据库时,所有匹配项(包括 PK、FK、索引等)除了:

我可以看到转换后的数据库中缺少我新创建的 uniq 索引([UK_Common.UserConnection] SessionId 和 UserId) 。与新 (V10) 数据库相比,转换后的数据库在“key_column_usage”表中的行数更少。

如果我从任何 sql ce 客户端应用程序中提取“创建 sql 表脚本”,则转换/更新和新 (V10) 脚本的脚本是相同的。

我试图在转换器中包含一个插入语句:

结果: 无法将数据添加到系统表或架构信息视图。[只读表的名称=@@INFORMATION_SCHEMA.KEY_COLUMN_USAGE]

我还尝试编写选择查询(rot to count key error)所在的旅馆.net。

结果: 无法将数据添加到系统表或架构信息视图。[只读表的名称=@@INFORMATION_SCHEMA.KEY_COLUMN_USAGE]

问题与 asp.net 项目中的失败单元测试 (mstest) 有关: Assert.IsTrue 失败。键列使用次数不同。

您如何更新:INFORMATION_SCHEMA.KEY_COLUMN_USAGE 编辑/更改 INDEX 后?

.NET 4.0 SQL CE 4.0 VS2010

0 投票
1 回答
305 浏览

sql - SqlCeDataReader.Read 很慢

我有一个 vb.net 应用程序,它从 SQL Server CE 数据库中的两个表中调用大量数据(大约 65,000 行)。

代码非常简单:

到目前为止,该reader.read语句的执行时间最长。读取和处理这 65,000 行大约需要 2 个小时,我估计其中大约 60-70% 来自reader.read语句中的滞后。

有没有办法加快这个速度?

编辑:

我做了一些时间测量,该reader.read语句花费的时间(平均而言)比我读取、格式化等的代码块长 150 倍。

0 投票
1 回答
913 浏览

c# - 如何连接到本地 sdf 文件?

我正在创建一个简单的 Windows C# 表单应用程序。但我无法连接到本地数据库文件(.sdf)

我在用着

这是我的 app.config 文件

我正在尝试通过以下代码连接数据库文件。

即使我使用ConnectionString1或者ConnectionString2它总是在尝试创建connectionString时跳转到catch块。

请帮我找出这段代码的错误。

0 投票
2 回答
197 浏览

c# - 在 Sql Server CE 中插入数据的最快方法

我一直在为我的产品开发C# Compact Framework 4.0

我有一台服务器和一部手机,我必须将服务器上的所有数据同步到我的移动设备。

通常大约 6000 个条目将被插入到我的移动设备中的单个表中。

现在我直接使用带有指定表的索引名称的表。

6000 个条目大约需要 55 秒。

有没有更快的插入方式??

0 投票
3 回答
604 浏览

c# - 如何使用一个组合框在 C# 中使用本地数据库过滤另一个组合框的结果

我花了很多时间在互联网上搜索答案,但什么都想不出来。基本上我有一个非常小的数据库,总共包含 5 个表。我现在的问题只涉及其中两个。我有一个名为 Model 的表(是的,我知道我在命名此表时做得不好。很快就会尝试重命名它)。这是模型的样子。 型号表

Make ID 是指 Makes 表中的唯一 ID。这是表 Make 的样子。 做表

我有一个使用 Visual Studios 2012 在 C# 中创建的 Windows 窗体应用程序。该数据库是在该项目中创建的。我有一个表格,其中包括两个组合框。第一个列出了 Makes 表中的信息。它显示了 3 个不同的汽车品牌。第二个组合框显示了与另一个表不同的模型。我可以得到第一个组合框来显示所有品牌。我可以获得第二个组合框来显示所有模型。但我想要的是,如果他们在第一个框中选择福特,它只会在第二个框中显示福特。当他们在第一个框中选择 Ford 时,我需要以某种方式存储与 Ford 关联的唯一 ID,然后通过引用 Model 表中的 Make ID 列来使用它来过滤第二个框。我已在 Access 中完成此操作,但无法在此处使用。这是我的代码

这很好地填充了第一个框。我在下拉框中看到福特、雪佛兰、道奇。但是,如果我在第二个盒子上尝试这个,它就行不通了。

我在这行收到一个错误,while (modelRead.read()) 它说缺少一个参数。

任何人都可以帮助我或指出我正确的方向。这是我第一次搞砸这个,所以我可能做错了一切。