我问过几个人为什么在存储过程中使用xml作为参数不起作用而且每个人都说,这就是它的方式.我无法相信这一点.
command.Parameters.Add("@xmldoc", SqlDbType.Xml);
Run Code Online (Sandbox Code Playgroud)
这就是编译器返回错误的地方,我不能使用NVarChar beacouse它只限于4k唱歌.XML将是完美的,因为它可以是2gig大.
为什么其他SqlDbTypes运行良好,这个重新出错?
*
错误:指定的参数超出了有效值的范围.参数名称:@xmldoc:无效的SqlDbType枚举值:25.
*
我正在尝试在我的WPF应用程序中使用EF Code First,其想法是在AppData/MyApp中创建一个SqlCe Db(如果没有),并将其与EF Code First一起使用.
当我尝试从它应该创建的数据库中读取数据时,它正在给出错误,但是当我检查数据库上下文对象时,我看到它正在尝试在SqlExpress中创建它.
首先,我如何设置它与CE而不是SqlExpress一起使用并设置文件位置?
我尝试在app.config中更改连接字符串,但无法使其工作(它没有创建sdf文件),而且我也不确定如何设置连接字符串路径到AppData文件夹,因为它在用户文件夹中(不是固定).
从未使用过SqlCe或EF Code First,所以欢迎任何帮助和赞赏.
提前致谢.
我有一个带有可选用户名字段的搜索表单.如果未提供用户名,则应返回所有匹配项.
我正在使用Linq和Sql Server CE 4.0.
linq代码如下所示 - >
from p in context.Accounts
where (name==string.Empty || p.UserName.Contains(name))
Run Code Online (Sandbox Code Playgroud)
使用Sql Server CE会引发以下错误
"此位置不允许使用参数.确保'@'符号位于有效位置,或者此SQL语句中的参数完全有效."
我可以采取其他方法在Linq中使用可选的Where子句吗?
仅供参考
from p in context.Accounts
where (string.IsNullOrEmpty(name) || p.UserName.Contains(name))
Run Code Online (Sandbox Code Playgroud)
给了我错误
"函数的指定参数值无效.[参数#= 1,函数名称(如果已知)= isnull]"}
这是因为Sql Server CE不支持IsNull.如果Name参数为Null,我只需执行以下操作.
if (name == null)
name = string.Empty;
Run Code Online (Sandbox Code Playgroud) 我们即将为我们的mvc Web应用程序实现新的实践,虽然我们所有大型项目在实时生成时都会在SQL Server上运行,但大多数都是在SQLite或SQL Express开发期间开始的(取决于开发人员).我想简化dev to live循环,因此我想抛弃SQLite并选择SQL CE 4.0或SQL Express作为我们的起点.我对SQL CE很谨慎,因为它不是为ASP.NET项目设计的(显然),但是Orchard默认使用SQL CE 4.0.
使用新项目引导CE非常简单,但它应该用于Web项目(小项目和开发项目)吗?还有其他DBType限制,但有没有人对CE 4有任何其他经验,好还是坏?
谢谢你对此的看法.
有什么方法可以将.csv或制表符描述的.txt中的数据快速导入到SQL Compact Edition 3.5表中?
我有大量无法手动输入的数据。
我知道如果想导入到基于服务器的SQL数据库中,可以使用BULK INSERT函数,但是此方法在SQL CE中不起作用。
我使用Visual Studio 2010,并且安装了SQL Server Management Studio。
任何帮助将不胜感激!
我有一个包含2个表的SqlServer Compact Edition数据库.
对于这些表中的每一个,我都有一个派生的上下文类DbContext,应用程序使用该上下文类来访问该表.
为了保持应用程序的不同组件分离,我不能拥有一个具有DbSet两个表属性的上下文类.相反,我需要有2个不同的上下文类,每个上下文都必须完全不知道另一个及其数据.
我正在使用代码优先方法,我的代码定义了实体和模型,我让Entity Framework为我创建数据库.
我的问题是:我怎样才能让Entity Framework在上下文初始化时自动为我创建数据库和表,但仍然有2个上下文共享相同的数据库和连接?
现在我得到的是,第一个上下文成功创建了数据库及其中的表,但是当我尝试创建第二个上下文时,我得到了,不出所料的是以下错误:
The model backing the 'SomeObjectContext' context has changed since the database
was created. Either manually delete/update the database, or call Database.SetInitializer
with an IDatabaseInitializer instance. For example, the DropCreateDatabaseIfModelChanges
strategy will automatically delete and recreate the database, and optionally seed it with
new data.
Run Code Online (Sandbox Code Playgroud)
没有一个IDatabaseInitializer适合我,因为我不希望在创建第二个上下文时删除整个数据库.我只想在现有数据库中创建第二个上下文表.
任何关于如何解决这个问题的建议将不胜感激.
谢谢
我有一个C#DateTime类,想知道我需要在SQL Server CE查询中将其格式化以将其插入到数据库中,我希望插入日期和时间.目前当我尝试其变体时我得到无效格式异常.
我正在使用的当前格式是:dd/MM/yyyy,希望做类似的事情dd/MM/yyyy hh:mm:ss.
我试图插入的方式是这样的:
( ( DateTime )_Value ).ToString( "dd/MM/yyyy hh:mm:ss" )
Run Code Online (Sandbox Code Playgroud)
显然hh:mm:ss不起作用,如果那不是dd/MM/yyyy在查询中成功执行的话.
我尝试了一些格式,包括我在谷歌上发现但迄今为止没有一种格式...
我最近安装了SQL 2008 R2
CREATE TABLE TPERSONS(
personid int PRIMARY KEY NOT NULL,
lastname varchar(50) NULL,
firstname varchar(50) NULL,
salary money NULL,
managerid int NULL -- foreign key to personid
)
Run Code Online (Sandbox Code Playgroud)
我不明白为什么我收到这个错误.
Major Error 0x80040E14, Minor Error 26302
)
The specified data type is not valid. [ Data type (if known) = varchar ]
Run Code Online (Sandbox Code Playgroud) 我有一个SQLCompact数据库,我试图使用ADO和访问C++.但是由于数据库的大小(300MB,超过默认的256MB限制),我必须Max Database Size在连接字符串中指定.但是这样做会导致.Open(...)函数抛出.
我正在使用的代码:
HRESULT hr = conn.CreateInstance(__uuidof(Connection), NULL);
conn->Open(L"Provider=Microsoft.SQLSERVER.CE.OLEDB.4.0;Data Source=test.sdf;Max Database Size=512", L"", L"",adConnectUnspecified);
Run Code Online (Sandbox Code Playgroud)
错误:
HR:DB_E_ERRORSOCCURRED
说明:"多步OLE DB操作生成错误.检查每个OLE DB状态值,如果可用.没有工作."
消息:"IDispatch错误#3105"
注意:
我尝试使用相同的代码,使用较小的数据库并Max Database Size从连接字符串中删除它,它按预期工作.Max Database Size再次添加会导致问题再次出现,因此我假设它是导致错误的问题.
有什么想法吗?如何使用Provider默认大小的数据库?
我使用的是EF 6.0和SQL Server CE 4.0.该.sdf文件受密码保护,我通过LinqPad打开文件验证了该文件.当我尝试使用以下连接字符串在代码中打开此数据库时,我得到一个异常:
指定的密码与数据库密码不匹配
码:
using (var context = new MyDbContext("ExamManagement"))
{
context.Database.Initialize(false);
}
Run Code Online (Sandbox Code Playgroud)
连接字符串:
<connectionStrings>
<add name="ExamManagement"
connectionString="Data Source=|DataDirectory|Pikeman.sdf;Max Database Size=4091;Password=123;"
providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
位于System.Data.Entity.Core.EntityClient.EntityConnection.Open()
处于System.Data.Entity.Core.Object.Entity上的System.Data.Entity.Core.Objects.ObjectContext.EnsureConnection(Boolean shouldMonitorTransactions)
中的System.Data.Entity. ](Func键1.<> c__DisplayClass7.b__5() 在System.Data.Entity.Core.Objects.ObjectQuery 1 forMergeOption) 在System.Data.Entity.Core.Objects.ObjectQuery 1.MoveNext() 在System.Linq.Enumerable .First [TSource](IEnumerable`1 source)1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
at System.Data.Entity.Core.Objects.ObjectQuery1.GetResults(Nullable1.<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__0()
at System.Data.Entity.Internal.LazyEnumerator
sql-server-ce ×10
c# ×5
sql ×3
ado ×1
asp.net-mvc ×1
c++ ×1
database ×1
datetime ×1
linq ×1
linq-to-sql ×1
orchardcms ×1
sql-server ×1
wpf ×1
xml ×1