Articles of sql

通过Massive ORM(ExecuteNonQuery),UdtTypeName错误更新带有空间数据类型的SQL Server 2008记录

我正在尝试使用Rob Conery的Massive“动态ORM”来查询我的数据库(到目前为止工作得很好)。 当我将Geography字段添加到表格时出现问题。 这是错误: UdtTypeName property must be set for UDT parameters 更新(14Apr2011):抛出exception的ADO方法是.ExecuteNonQuery(); 这是抛出exception的Massive.cs中的方法: public virtual int Execute(IEnumerable commands) { var result = 0; using (var conn = OpenConnection()) { using (var tx = conn.BeginTransaction()) { foreach (var cmd in commands) { cmd.Connection = conn; cmd.Transaction = tx; result += cmd.ExecuteNonQuery(); } tx.Commit(); } } […]

C#DataTable.Select() – 如何格式化过滤条件以包含null?

这不起作用 DataTable myNewTable = myDataTable.Select(“Name ‘n/a'”).CopyToDataTable(); myDataTable有一行名为Name 。 我想从这个表中选择Name不等于“n / a”的行。 它选择但仍然缺少空值我也需要空值。 有人可以帮忙吗?

使用SqlDataReader作为资源的习惯用法

继这个问题之后,我发现自己一遍又一遍地编写以下代码: SqlCommand command = new SqlCommand(); // Code to initialize command with what we want to do using (SqlConnection connection = openConnection()) { command.Connection = connection; using (SqlDataReader dataReader = thisCommand.ExecuteReader()) { while (dataReader.Read()) { // Do stuff with results } } } 必须嵌套两个using语句是相当繁琐的。 有没有办法告诉 SqlDataReader它拥有该命令,并告诉命令它拥有该连接? 如果有办法做到这一点,那么我可以写一个辅助方法,可以像这样调用: // buildAndExecuteCommand opens the connection, initializes the command […]

逐步构建OR查询表达式

在LINQ中,可以逐步构建LINQ查询,如下所示: var context = new AdventureWorksDataContext(); // Step 1 var query = context.Customers.Where(d => d.CustomerType == “Individual”); // Step 2 query = query.Where(d => d.TerritoryID == 3); 上面的查询将产生一个等效的SQL语句,其WHERE子句包含由AND逻辑运算符组合在一起的两个谓词,如下所示: SELECT * FROM Customers WHERE CustomerType = ‘Individual’ AND TerritoryID = 3 是否可以构建LINQ查询以progressively生成等效的SQL语句,以便生成的查询具有WHERE子句,其中谓词由OR逻辑运算符组合在一起,如下所示? SELECT * FROM Customers WHERE CustomerType = ‘Individual’ OR TerritoryID = 3

在哪里使用Execute Scalar,Execute Reader和Data Set?

我知道我可以使用这三个术语从数据库中读取数据,但是任何人都能正确指导我何时使用ExecuteScalar , ExecuteReader和DataSet ?

LINQ在表中使用复合键进行子选择

我在数据库中有一个通过Entity Framework查询访问的设置表。 设置具有复合键:类别,组,名称,目标,已修改。 设置显然也包含非关键字段,如值。 我如何编写一个查询,为我提供相同的(类别,组,名称,目标)中的最新设置? 更具体地说,我想要所有最新的设置实体,包括非关键字段,匹配特定的类别,组,目标组合。 例如:为类别为“数据库”且组为“超时”的所有目标提供所有最新设置。 这可以分两步完成,初始查询返回匹配条件的所有[Category,Group,Name,Target,Modified]键,然后循环查询每个键的设置,但这会产生大量数据库查询,创造开销。 如果我想最小化框架执行的SQL数据库查询的数量,我将如何使用LINQ?

如何检查列是否已经是外键?

我有一个名为Person的表和名为ID的列如何检查ID是否已经是FOREIGN KEY因为我想用这段代码来创建它: ALTER TABLE Person ADD FOREIGN KEY(ID) REFERENCES Job(ID) ON DELETE CASCADE ON UPDATE CASCADE 但如果ID已经是FOREIGN KEY,它会给我以下错误“可能导致循环或多个级联路径”,因为有两个级联的条件…如何检查此字段是否为FOREIGN KEY以避免此错误?

构建动态SQL查询的最佳实践

我正在寻找一些提示和技巧如何构建动态查询。 我有一个应用程序,它允许用户搜索数据库表中的10个字段。 根据UI中哪些字段填充值,查询应在DB中的其他字段中搜索。 目前我正在尝试使用StringBuilder构建查询并添加where子句但我真的不喜欢这个,我想知道是否有更好的方法来做到这一点,例如使用LINQ,如果可能的话。 也许有人可以提出想法或更好的一些示例代码。 感谢,并有一个愉快的一天!

在自动启动服务中连接到SQL Server失败,在手动启动时有效。 SQL Server尚未就绪,但服务已启动

TL; DR – MSSQL服务声称准备就绪(状态=已启动),但尚未准备就绪(请参阅下面的删除文本) 我有C#编写的Windows服务,它将自己安装为ServiceAccount.LocalSystem并在ServicesDependedOn指定MSSQLSERVER 。 现在我已经创建了MS SQL用户,授予它所有必要的权限和角色(包括所需数据库上的db_owner和Connect / Login权限)。 当手动运行服务时(通过net start或services.msc管理器),它可以正常工作,即它连接到数据库。 当我重新启动计算机时,该服务会抛出此exception: Cannot open database “xxxx” requested by the login. The login failed. Login failed for user ‘xxxxx’. 我配置错误了什么? 再次,当我手动运行服务时它工作正常! 我也尝试通过MS SQL Management Studio登录此帐户 – 这也有效。 正如评论中所建议的那样,我在尝试连接之前已经尝试过等待 – 20秒睡眠无法解决问题。 我将MSSQLSERVER服务的状态(通过ServiceController检查)添加到日志中,它是“正在运行”。 一切似乎都很好,除了在自动启动服务时登录失败 好的,我已经跟踪了几个小时了。 这是我发现的: SQL Server服务(MSSQLSERVER) 声称已经准备就绪 (status = Started)(发出“net start”命令后大约2-3秒)。 不幸的是,预热(启动数据库,恢复和其他一些东西)会在以后 发生,最多需要2分钟 (120秒!!)。 当然,它会在热身之前拒绝连接。 […]

Guids的SQLite参数问题

我在使用参数时在SQLite(0.4.8)中使Guids匹配时遇到问题,当我使用像userGuid = ‘guid here’这样的东西时,它可以工作,但userGuid = @GuidHere却没有。 有人有主意吗? 创建: CREATE TABLE Users ( UserGuid TEXT PRIMARY KEY NOT NULL, FirstName TEXT, LastName TEXT ) 样本数据: INSERT INTO Users (UserGuid, FirstName, LastName) VALUES (‘e7bf9773-8231-44af-8d53-e624f0433943’, ‘Bobby’, ‘Bobston’) 删除声明(工作): DELETE FROM Users WHERE UserGuid = ‘e7bf9773-8231-44af-8d53-e624f0433943’ 删除声明(不工作): DELETE FROM Users WHERE UserGuid = @UserGuid 这是一个显示我的问题的C#程序: using System; using System.Data.SQLite; […]