我有一个*.MDB数据库文件,我想知道是否有可能或建议在C#中使用LINQ来对付它.我也想知道一些简单的例子会是什么样子.
我对LINQ知之甚少,但我对此任务的要求非常简单(我相信).用户将传递给Microsoft Access MDB数据库的文件路径,我想使用LINQ将行添加到数据库中的一个表.
你能case在Access中使用表达式吗?我正在尝试确定2列的最大日期,但在以下代码中不断收到语法错误:
CASE
WHEN dbo_tbl_property.LASTSERVICEDATE > Contour_dates.[Last CP12 Date]
THEN dbo_tbl_property.LASTSERVICEDATE
ELSE Contour_dates.[Last CP12 Date]
END AS MaxDate
Run Code Online (Sandbox Code Playgroud) 我有一个JET以自动编号为主键的表,我想知道如何在插入一行后检索此数字.我曾想过MAX()用来检索具有最高值的行,但我不确定它有多可靠.一些示例代码:
Dim query As String
Dim newRow As Integer
query = "INSERT INTO InvoiceNumbers (date) VALUES (" & NOW() & ");"
newRow = CurrentDb.Execute(query)
Run Code Online (Sandbox Code Playgroud)
现在我知道这不起作用,因为Execute()不会返回主键的值,但这基本上是我正在寻找的那种代码.我将需要使用新行的主键来更新另一个表中的多个行.
这样做最简单/最易读的方法是什么?
我有一个文本文件,其中包含一些我想在Access数据库上运行的SQL语句.我认为应该可以使用Access的查询编辑器.所以,我进入这个编辑器并粘贴语句:
insert into aFewYears (yr) values ('2000')
insert into aFewYears (yr) values ('2001')
insert into aFewYears (yr) values ('2002')
insert into aFewYears (yr) values ('2003')
Run Code Online (Sandbox Code Playgroud)
试图运行它们(通过敲击红色感叹号)我收到了
Missing semicolon (;) at end of SQL statement.
这可以作为编辑器允许执行多个语句的指示.所以,我更改了语句并在最后添加了这样的分号:
insert into aFewYears (yr) values ('2000');
insert into aFewYears (yr) values ('2001');
insert into aFewYears (yr) values ('2002');
insert into aFewYears (yr) values ('2003');
Run Code Online (Sandbox Code Playgroud)
然后我得到一个
Characters found after end of SQL statement.
可能被视为不可能执行多个语句的指示.
好的,所以问题是:是否可以在查询编辑器中执行多个语句,或者是否可以以某种方式批量执行文件中/对/ Access中的sql语句.
谢谢/雷内
编辑插入语句被用作一个例子,我意识到它们并不完美,因为它们都会转到同一个表,这样的事情显然可以通过使用一个带有union或其他东西的语句来解决.在我试图解决的实际情况中,该文件不仅包含插入语句,还包含创建表语句和插入具有不同基础表的语句.所以我希望(并且仍然希望)有一些像我心爱的SQL*Plus for Oracle可以执行带有各种SQL语句的文件.
我想单击访问表单上的一个按钮,在Windows资源管理器中打开一个文件夹.
在VBA中有什么办法吗?
对于一个小项目,我需要使用一个要求非常低的简单数据库:几个表,总共不超过几千条记录,2或3个用户.我在.NET环境中工作.
由于数据库服务器(即使是那些Express版本)在这种情况下似乎是一个巨大的过度杀伤,因此非常简单的MDB数据库可以满足大多数要求.但是,我关注并发性.我的想法是将.mdb文件放在网络共享上,让用户从基于.NET的客户端访问该文件.数据库主要针对只读操作,但用户有时也需要更新/删除记录.如果当时无法做到这一点(由于数据库被锁定或其他原因),我可以在客户端上保存更新并在以后处理它们.
问题本身就是这些问题:
当我在.NET工作时,我也想知道如何检测任何并发问题并采取适当的措施.即,我应该抓住哪个例外,你会建议采取什么行动?
编辑:这可能是我对问题的错误描述,但大多数答案似乎建议去一个完整的数据库服务器.我确实理解了安装服务器的差异和好处,并且实际上在MSSQL和Oracle上实现了相当多的项目.但是,在这个问题中,我只关心Access及其并发问题,所以请不要建议使用db服务器.
谢谢你的帮助.
我有一个Access数据库应用程序,我想知道反编译和重新编译它的正确方法.
如何在Access 2007 VBA中显示打开的文件(或文件选择)对话框?
我已尝试使用Application.GetOpenFileName,就像在Excel中一样,但Access中不存在此功能.
我有一个具有以下结构的表
ID Account Number Date
1 1001 10/9/2011 (dd/mm/yyyy)
2 2001 1/9/2011 (dd/mm/yyyy)
3 2001 3/9/2011 (dd/mm/yyyy)
4 1001 12/9/2011 (dd/mm/yyyy)
5 3001 18/9/2011 (dd/mm/yyyy)
6 1001 20/9/2011 (dd/mm/yyyy)
Run Code Online (Sandbox Code Playgroud)
基本上我想要做的是有一个访问查询,计算连续记录的日期差异,但相同的帐号,预期的结果将是!!
1001 10/9/2011 - 12/9/2011 2 days
1001 12/9/2011 - 20/9/2011 8 days
1001 20/9/2011 NA
Run Code Online (Sandbox Code Playgroud)
基本上我想要做的是有一个访问查询,计算连续记录的日期差异,但对于相同的帐号,在上面的例子中将是1001.(日期不必显示在结果中)
我使用Access 2003.
我有一个查询这是相当大的,在加盟十几张桌子,我想拉回来基于一个id字段记录(如:between nStartID and nEndID).
我创建了两个参数并将它们作为标准进行测试,它们运行良好.
问题是,我需要在主查询中运行来自此主查询的插入查询,并且需要它们所在的参数.所以,我需要以编程方式将参数传递给它.
任何人都知道如何做到这一点?
谢谢.
ms-access ×10
vba ×3
access-vba ×2
sql ×2
.net ×1
c# ×1
concurrency ×1
database ×1
decompiler ×1
jet ×1
linq ×1
maintenance ×1
ms-jet-ace ×1
parameters ×1