Tag: sql

为什么Entity Framework 6为简单查找生成复杂的SQL查询?

我有这个LINQ查询 dbContext.Customers.Where(c => c.AssetTag == assetTag).Count(); 要么 (from c in dbContext.Customers where c.AssetTag == assetTag select c).Count(); 生成的SQL是 SELECT [GroupBy1].[A1] AS [C1] FROM ( SELECT COUNT(1) AS [A1] FROM [dbo].[Customer] AS [Extent1] WHERE (([Extent1].[AssetTag] = @p__linq__0) AND ( NOT ([Extent1].[AssetTag] IS NULL OR @p__linq__0 IS NULL))) OR (([Extent1].[AssetTag] IS NULL) AND (@p__linq__0 IS NULL)) ) […]

日期时间问题与01/01/1900

我在sql server中有一个datetime列及其可选字段,如果用户决定不输入,那么我想在表中插入值为NULL,我定义如下: @deadlineDate datetime = null 当我插入到SQL服务器时,我在asp.net中有这个代码 private DateTime? GetDeadlineDate() { DateTime? getDeadlineDate = null; if (!string.IsNullOrEmpty(DeadlineDate.SelectedDate)) { getDeadlineDate = DateTime.Parse(DeadlineDate.SelectedDate).Date; } if (!getDeadlineDate.HasValue) { return null; } return getDeadlineDate.Value; } 但问题是:它的插入 1900-01-01 00:00:00.000 在sql表中而不是NULL 我在这做错了什么? 更新: private DateTime? GetDeadlineDate() { DateTime? getDeadlineDate = null; if (!string.IsNullOrEmpty(DeadlineDate.SelectedDate)) { getDeadlineDate = DateTime.Parse(DeadlineDate.SelectedDate).Date; } if (!getDeadlineDate.HasValue) { […]

SQL Query表示未提供参数,但会将其添加到SqlCommand对象中

我有一个存储过程,其中有一个名为UserName的参数,在我的代码后面我有一个SqlCommand对象,我使用Add方法添加参数。 但由于某些原因,当命令对象尝试运行ExecuteReader方法时,它会抛出exception。 我完全不知所措,不知道为什么它没有识别参数。 在运行ExecuteReader方法之前,我有一个断点设置,所以我可以确认命令对象确实包含正在设置的参数,这是真的。 我知道当参数未添加到命令对象时,存储过程确实返回正确的数据,但在实际存储过程中是硬编码的。 下面是catch块中给出的exception消息。 我还将粘贴我的代码和存储过程的第一部分。 我非常感谢这个问题的任何帮助,看到我尝试了许多不同的方法无济于事。 提前致谢。 例外消息 过程或函数’someStoredProcedure’需要参数’@UserName’,这是未提供的。 代码背后 private DataTable GetLossMitData(string code, DateTime? start, DateTime? end) { DataTable results = new DataTable(); string connectionString = ConfigurationManager.ConnectionStrings[“asdf”].ConnectionString; string userName = String.Empty; try { using (SPSite site = new SPSite(ConfigurationManager.AppSettings[“someName”])) { using (SPWeb web = site.OpenWeb()) { userName = web.CurrentUser.Email.ToString(); } } using […]

EF 5.0和动态连接字符串?

有一件事让我现在发疯了。 我的(数据库优先)EF模型需要动态连接字符串(服务器的IP地址可能偶尔会改变)。 因此,在较旧的EF版本中,您可以通过构造函数传递连接字符串,但这在5.0中是不可能的。 到目前为止我所读到的内容,您可以更改数据模板,但每次重新生成模型等时都会被覆盖,因此不是最好的方法。 另一件事是SQLConnectionFactory,但这似乎根本不起作用(Database.DefaultConnectionFactory = new SqlConnectionFactory( … )似乎完全被忽略)。 什么是正确的方法?

映射类别父ID自引用表结构到EF Core实体

数据库表: 图片 我尝试了这种方法将类别表映射到EF核心: protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity(entity => { entity .HasMany(e => e.Children) .WithOne(e => e.Parent) .HasForeignKey(e => e.ParentId); }); } 实体: [Table(“Category”] public class Category : EntityBase { [DataType(DataType.Text), MaxLength(50)] public string Name { get; set; } public int? ParentId { get; set; } public int? Order { get; set; } […]

解决SQL查询的超时错误

我收到此错误: 超时已过期。 操作完成之前经过的超时时间或服务器没有响应。 我知道那里已有指南帮助解决这个问题,但他们并没有为我工作。 我错过了什么或者我应该在哪里将代码添加到我的C#程序中的这些SQL语句中: String sql = project1.Properties.Resources.myQueryData; SqlDataAdapter sqlClearQuestDefects = new SqlDataAdapter(sql, “Data Source=ab;Initial Catalog=ac;User ID=ad; Password =aa”); DataSet lPlanViewData = new DataSet(); sqlClearQuestDefects.Fill(lPlanViewData, “PlanViewData”); 我在这一行收到超时错误: SqlDataAdapter sqlClearQuestDefects = new SqlDataAdapter(sql, “Data Source=ab;Initial Catalog=ac;User ID=ad; Password =aa”);

entity framework6代码优先触发器

我正在使用Entity Framework 6 Code First,并且想要创建一个Trigger。 我该怎么做呢? 我需要触发器的原因是因为用户可能直接编辑数据库或通过我正在编写的程序编辑数据库,我需要确保表中的2列不是空的,并且都不是空的。 我一直在寻找,找不到办法。 有没有办法先使用代码指定触发器?

如何获取Access(Jet)数据库中的表列表?

我需要查看我的c#程序使用的Access数据库中是否存在表。 知道有其他数据库的SQL命令将返回表列表。 Access / Jet数据库是否有这样的命令?

日历System.Globalization.GregorianCalendar中不支持字符串表示的DateTime

我只是想将出生日期保存到SQL数据库中,但每次获得新的exception时,数据库字段类型都是datetime。 这是我的代码 usinfo.BirthDate = DateTime.ParseExact(txtDOB.Text.ToString(), “MM/dd/yyyy”, CultureInfo.InvariantCulture);

从对象,entity framework自动创建数据库表

我正在尝试这个教程http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/getting-started-with-mvc3-part4-cs但不是使用紧凑版的SQL Server我在本地计算机上使用完整安装。 我阅读本教程的方式是entity framework假设从我定义的对象创建表。 我的问题是,当我运行项目时,我一直收到无效的对象名称dbo.movi​​es。 我终于通过自己创建表来运行它,所以我知道连接字符串,一切都是正确的。 我的问题是,是否可以从C#中创建的对象生成表格,如果是这样的话?