Tag: sql

我该如何更新SQL表逻辑

我有一个结构为, Table 3 Fruit ID – Foreign Key (Primary Key of Table 1) Crate ID – Foreign Key (Primary Key of Table 2) 现在我需要执行一个查询, 如果 Fruit ID 已经在Table中,则 更新 Fruit ID Crate ID ,如果没有,则将表3中的记录作为新记录插入。 这就是我现在在代码中得到的, private void RelateFuirtWithCrates(List selectedFruitIDs, int selectedCrateID) { string insertStatement = “INSERT INTO Fruit_Crate(FruitID, CrateID) Values ” + “(@FruitID, @CrateID);”; ?? […]

从两个逗号分隔的参数更新表作为输入

我在前端有一个Gridview,其中Grid有两列:ID和Order,如下所示: ID Order 1 1 2 2 3 3 4 4 现在用户可以像前端Gridview一样更新订单: ID Order 1 2 2 4 3 1 4 3 现在,如果用户单击“保存”按钮,则ID和订单数据将作为@sID =(1,2,3,4)和@sOrder =(2,4,1,3)发送到存储过程 现在,如果我想更新订单并进行保存,我想将其存储到数据库中。 通过存储过程如何更新到表中以便更新表,而选择它时会给我以下结果: ID Order 1 2 2 4 3 1 4 3

“当IDENTITY_INSERT设置为OFF时,无法在表’电影’中为标识列插入显式值。”

我首先使用代码entity framework。 我一直在收到以下错误,无法弄清楚如何修复它: “当IDENTITY_INSERT设置为OFF时,无法在表’电影’中为标识列插入显式值。” 我已经读过在我的迁移查询周围设置Sql(“SET IDENTITY_INSERT Movies ON”)和OFF应修复此问题,但是我没有在Movies表上运行任何查询。 电影表: { public class Movies { public byte Id { get; set; } [Display (Name = “Movie Name”)] public string MovieName { get; set; } public Genre Genre { get; set; } [Required] public byte GenreId { get; set; } [Display (Name = “Release Date”)] public DateTime […]

LINQ Query返回第一个结果的多个副本

我有一个在数据库中定义的视图(archiveContentPreviews),它将几个表连接在一起,在Linq中它有一个实体键(ArchiveID),我想用这个简单的查询查询这个视图: var x = from fields in entities2.archiveContentPreviews where fields.ArchiveID == archiveID select fields; return x.ToList(); 它返回确切的结果数但是第一个结果的多个副本的问题,当我在SQL管理工作室中执行该查询时,它返回正确的结果,任何帮助?!

将带有join的SQL查询转换为lambda表达式

不知道如何将以下sql转换为lambda表达式。 我的数据库使用参照完整性和与Content_Training表相关的表内容,具有1对多的关系(1个内容可以包含许多content_trainings) select c.ContentId, c.Name, ct.TrainingTypeId from dbo.Content c left join dbo.Content_Training ct on c.ContentId = ct.ContentId where c.PublishDate is not null order by ct.TrainingTypeId, c.Name

无法将DBNull.Value强制转换为“System.DateTime”。 请使用可空类型

这是我的代码 var finalResults = (from r in results.AsEnumerable() where r.Field(“PrintTime”) is DBNull 其中PrintTime是我的Sql Server 2008 r2数据库中的一列,其类型是datetime并且可以为空 我有这个例外: 无法将DBNull.Value强制转换为“System.DateTime”。 请使用可空类型。 你能帮帮忙吗?

数据库未启动但SQL Server已准备好进行连接时出现SqlException

我正在处理SQL Server的“准备连接”状态和我的数据库启动时间之间的相当长的延迟。 有时需要2分钟以上。 这就是为什么我有时会在联机之前尝试连接数据库的原因。 您知道吗,如何缩短“准备连接”和启动数据库之间的时间? 或者我如何确定数据库是否在线以从我的C#应用​​程序连接到它? 基本上我通过连接字符串有一些连接的“缓存”。 第一次连接当然会发生这种情况,因此我的连接代码非常简单: var result = new SqlConnection(); result.ConnectionString = “some connection string here”; try { result.Open() } catch (Exception ex) { //some logging stuff here throw; } 这是C#exception: System.Data.SqlClient.SqlException:无法打开登录请求的数据库“XXX”。 登录失败。 这是SQL Server日志: 2014-03-31 08:21:05.65 – SQL Server现在已准备好进行客户端连接。 这是一条情报信息; 无需用户操作。 2014-03-31 08:21:09.21 – 数据库模型(数据库ID 3)在1秒内完成恢复(分析234毫秒,重做0毫秒,撤消514毫秒)。这只是一条信息性消息。 无需用户操作。 2014-03-31 08:21:11.52 – 错误:18456,严重性:14,状态:38。 […]

在Code中,INSERT语句与FOREIGN KEY约束冲突

我刚开始使用Code第一种方法来创建数据库。 我有以下3个表格: public partial class AccountHolder { public int AccountHolderId { get; set; } public virtual List Address { get; set; } } public partial class Nominee { public int NomineeId { get; set; } public virtual List Address { get; set; } } public partial class Address { public int AddressId { get; set; […]

SQL Server序列差距

我有一个SEQUENCE ,用于设置表的事务对开: CREATE SEQUENCE [Seq].[Folio] AS [bigint] START WITH 114090 INCREMENT BY 1 MINVALUE -9223372036854775808 MAXVALUE 9223372036854775807 CACHE 今天只是为了好奇我做了一个: SELECT folio FROM transactions ORDER BY folio DESC 如果有差距会有什么意外,因此表中缺少对开页。 例: 898,897,894,892,890,889 …… 这意味着事情正在发生。 为了提供更多信息,我使用的INSERT存储过程在INSERT INTO…之前有以下内容INSERT INTO… DECLARE @numfolio int SELECT @numfolio = NEXT VALUE FOR Seq.Folio 从我的应用程序保存信息时,我使用了数据库事务,所以如果一切顺利,那么应用程序执行COMMIT TRANSACTION ,如果不是,我执行ROLLBACK TRANSACTION 。 我认为问题的根源是事务,所以当出现错误时,序列的NEXT VALUE已经生成, ROLLBACK对此没有影响。 有任何线索如何解决这个问题,以便有一个没有间隙的完美序列?

从逗号连续列表创建SQL表

我正在运行SQL Server,我有一个存储过程。 我想用WHERE IN子句做一个select语句。 我不知道列表会有多长时间,所以我现在尝试了以下内容 SELECT * FROM table1 WHERE id IN (@idList) 在这个解决方案中,@ idList是一个varChar(max)。 但这不起作用。 我听说传递表值,但我对如何做到这一点很困惑。 任何帮助都会很棒