我正在编写一个使用SQL Server CE 4.0文件的C#应用程序,这些文件可以通过代码优先通过Entity Framework 6.0访问.(应用程序需要能够使用本地dll进行SQL Server CE连接,即应用程序需要可以部署XCOPY).应用程序在我的开发机器上运行良好,但在其他机器上(例如只有Win7和.NET 4.0的VM),我得到一个ArgumentException:
具有不变名称"System.Data.SqlServerCe.4.0"的ADO.NET提供程序未在计算机或应用程序配置文件中注册,或者无法加载.有关详细信息,请参阅内部异常
内部异常消息说:
无法找到请求的.Net Framework数据提供程序.它可能没有安装.
我搜索过Google和SO,大多数评论表明确保App.config文件正确无误.我相信我的(默认连接工厂和提供商部分),但这里是内容:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
<parameters>
<parameter value="System.Data.SqlServerCe.4.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="System.Data.SqlServerCe.4.0" type="System.Data.Entity.SqlServerCompact.SqlCeProviderServices, EntityFramework.SqlServerCompact" />
</providers>
</entityFramework>
</configuration>
Run Code Online (Sandbox Code Playgroud)
build文件夹包含以下文件(当然还有特定于应用程序的文件):
在每个amd64和x86子文件夹中都有以下文件:
我确定该程序在开发机器上运行,因为已经安装了SQL Server CE,但是如何在其他机器上使用本地SQL Server CE …
这是我的问题.我有一个应用程序,它打开一个文件打开对话框,我试图在文件路径和文件名中输入"文件名:"组合框部分.
应用程序使用您登录的表单加载.这将打开另一个表单,其中有许多按钮.选择其中一个按钮可打开另一个表单.在这种形式中,有一个按钮来选择文件.在这个阶段,有3种形式开放.这将打开标准文件打开对话框.我似乎无法处理此文件打开对话框.
这是我正在使用的代码.
Window LoginForm = application.GetWindow("LoginForm");
LoginForm.Get<Button>("btnSelectFiles").Click(); // This is from the 3rd form that is opened
Run Code Online (Sandbox Code Playgroud)
出于某种原因,我可以使用LoginForm变量访问其他表单中的所有按钮.我尝试了以下内容.
Window FileOpenDialog = application.GetWindow("Open", InitializeOption.NoCache);
Run Code Online (Sandbox Code Playgroud)
这不起作用.
我也试过以下但是这会返回null.我以为我可以使用LoginForm变量访问它.
Win32ComboBox comboBox = LoginForm.Get<Win32ComboBox>("Filename");
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?谢谢
任何人都可以就各种同步Write和Read数据库的方法给出一些指示吗?
什么是不同的技术,以及如何评估每个技术的可靠性,性能,实施成本等.
我正在使用SQL Server 2005中的SQL Server代理作业执行存储过程.
这项工作一直持续到昨天.从昨天起,这项工作耗时超过1小时而不是2分钟.
我在SSMS中执行了存储过程,执行时间不到1分钟.
我无法弄清楚为什么它作为SQL Server代理作业执行时需要超过1小时?
我们有一个网站,我们需要一个调度程序来接收特定时间的通知(电子邮件).例如.一个人在下午5点设置提醒以下午4:45参加会议,将在下午4:45收到相同的电子邮件.
由于此站点托管在共享服务器上,因此我们无法控制服务器以运行任何SQL作业或调度程序应用程序.
asp.net中有什么可以帮助在这种情况下?
我正在运行安装了Service Pack 1的SQL Server 2008 64位开发人员版.我有一个SQL Server代理作业.在这份工作中,我想得到自己工作的job_id.
在MSDN(http://msdn.microsoft.com/en-us/library/ms175575 ( v=SQL.100 ) .aspx)上,您可以找到在作业步骤中使用令牌的说明.哇,太棒了,这就是我要找的!! 只需使用(JOBID).
从SQL Server 2005 SP1开始,您必须使用像$(ESCAPE_NONE(JOBID))这样的宏.没问题.
但是如果你试试这个例子:
DECLARE @name NVARCHAR(128)
select @name = name from msdb.dbo.sysjobs where job_id = $(ESCAPE_SQUOTE(JOBID))
PRINT @name
Run Code Online (Sandbox Code Playgroud)
你得到:
'ESCAPE_SQUOTE'附近的语法不正确.(Microsoft SQL Server,错误:102)
好的,现在从头开始:
PRINT N'$(ESCAPE_SQUOTE(JOBID))'
Run Code Online (Sandbox Code Playgroud)
结果0xE33FE637C10B3C49A6E958BB3EF06959但JOB_ID是37E63FE3-0BC1-493C-A6E9-58BB3EF06959
的"N'"我觉得做一个隐式转换到(JOBID)的NVARCHAR ......
好吧,我想我要关心的数据类型( JOBID).在这本书中的"SQL Server 2008管理"一百六十九分之一百六十八页面上有同样使用(JOBID)的例子:
declare @jobid binary(16)
SELECT @jobid =Convert(Uniqueidentifier,$(ESCAPE_NONE(JOBID)))
Run Code Online (Sandbox Code Playgroud)
结果:
.附近有语法错误('(的Microsoft SQL Server,错误:102)
.我完全糊涂了,现在请能有人帮我一个好的建议或解决方案各式各样的帮助表示赞赏.
最好的问候Helmut
我尝试在 tsql 中保留换行符。所以我想删除字段中数据的前导 CHAR(13) + CHAR(10)。并确保其他换行符不会被删除。
我的意思是:
'
Kanne Oliver
Rosa-Luxemburg-Str. 3
07817 Alton ( Elster)'
Run Code Online (Sandbox Code Playgroud)
应该是这样的:
'Kanne Oliver
Rosa-Luxemburg-Str. 3
07817 Alton ( Elster)'
Run Code Online (Sandbox Code Playgroud)
先谢谢了
我在SQL Server数据库的表中有一个字段(比方说,foo),该表最初定义为可为空,但新要求表明此字段必须为非null.
在不删除表内容的情况下,通过更新脚本将此字段更新为非null的最佳方法是什么?我尝试从"设计"视图生成脚本,但在执行期间失败,因为表的当前内容具有foo的NULL值.更糟糕的是,如果我忽略了这个错误,它会继续删除表中的所有内容!
我试图执行一个SQL查询,该查询将使用表中第一个记录集中的文本重命名表的列.
我的表看起来像这样:
COL1 | COL2 | COL3 | COL4 | COL5 | COL6
REASON |ITEMDATE|ITEMTIME|SITENAME| EVENT | RPM
tstamp |12-11-07| 24:12 | Spain1 |Shutdwn | 1000
tstamp |13-11-07| 02:22 | Spain1 |Startup | 1050
Run Code Online (Sandbox Code Playgroud)
我想重命名这样的列:
REASON |ITEMDATE|ITEMTIME|SITENAME| EVENT | RPM
tstamp |12-11-07| 24:12 | Spain1 |Shutdwn | 1000
tstamp |13-11-07| 02:22 | Spain1 |Startup | 1050
Run Code Online (Sandbox Code Playgroud) 我在创建对象之前设置了多个变量,我想检查这些变量中是否有任何变量,如果有任何变量则显示错误.有没有办法将它合并到foreach循环中?
例如.
Var Var1 = blah1;
Var Var2 = blah2;
Var Var3 = blah3;
Var Var4 = blah4;
Var Var5 = blah5;
foreach(var above, if any is null)
Errmessage
Run Code Online (Sandbox Code Playgroud)
提前致谢