Tag: sql

C#SqlCommand – 不能使用参数作为列名,如何解决?

有什么方法可以做到吗? 这不起作用: SqlCommand command = new SqlCommand(“SELECT @slot FROM Users WHERE name=@name; “); prikaz.Parameters.AddWithValue(“name”, name); prikaz.Parameters.AddWithValue(“slot”, slot); 我唯一能想到的是使用SP并声明并设置列的变量。 对我来说有点尴尬。

带有单引号的字符串字段在表中插入记录时会导致错误

我有下面的代码: query = “insert into tblB2B_OrderStatusTopStillInRB (LSRNbr, ShipName, Units, DroppedInRB, EPT, Status, OnTimeStatus, ShipVia, DroppedInRB_Order, RealEPT) “; query += “values (‘” + ListOrdStatusTopInRB[i].LSRNbr + “‘,'” + ListOrdStatusTopInRB[i].ShipName + “‘,” + ListOrdStatusTopInRB[i].Units + “,'” + ListOrdStatusTopInRB[i].DroppedInRB + “‘,'” + ListOrdStatusTopInRB[i].EPT + “‘,'” + ListOrdStatusTopInRB[i].Status + “‘,'” + ListOrdStatusTopInRB[i].OnTimeStatus + “‘,'” + ListOrdStatusTopInRB[i].ShipVia + “‘,'” + ListOrdStatusTopInRB[i].DroppedInRB_Order […]

如何识别拼写不同的相似单词

我想从数据库中筛选出重复的客户名称。 单个客户可能有多个具有相同名称的系统条目,但拼写上的差异很小。 所以这是一个例子:一个名为Brook的客户可能有三个条目进入系统: 布鲁克伯塔 布鲁克伯塔 Biruk Berta 我们假设我们将此名称放在一个数据库列中。 我想知道识别此类重复的不同机制,例如100,000条记录。 我们可以在C#中使用正则表达式来迭代所有记录或其他一些模式匹配技术,或者我们可以将这些记录导出到最适合此类查询的内容(具有正则表达式function的SQL))。 这就是我认为的解决方案 编写C#代码来遍历每条记录 只按顺序获取辅音字母(在上述情况下:BrKBrt) 从其他记录中搜索相同的辅音模式,考虑类似的声音字母,如(C,K)(C,S),(F,PH) 所以请转发任何想法。

带参数的ASP.NET ODBC查询

请帮帮我,我不知道下面的代码有什么不妥: OdbcConnection conn = new OdbcConnection(connString); String query = “INSERT INTO customer (custId, custName, custPass, “+ “custEmail, custAddress, custAge) VALUES (” + “@ID, @Name, @Pass, @Email, @Address, @Age)”; OdbcCommand exe = new OdbcCommand(query, conn); exe.Parameters.Add(“@ID”, OdbcType.UniqueIdentifier).Value = id; exe.Parameters.Add(“@Name”, OdbcType.VarChar).Value = name; exe.Parameters.Add(“@Pass”, OdbcType.VarChar).Value = pass; exe.Parameters.Add(“@Email”, OdbcType.VarChar).Value = email; exe.Parameters.Add(“@Address”, OdbcType.VarChar).Value = address; exe.Parameters.Add(“@Age”, […]

SQL / C# – 执行查询的最佳方法

我需要从ac#class中执行一个sql查询。 我想到了两个选择 启动sqlcmd的进程。 使用SqlCommand对象。 我的问题是哪种方式更好? 重要的是,解决方案只能在短时间内与服务器建立连接。 如果上述情况不好,我会对其他想法持开放态度。 提前致谢。

SQLBulkCopy的任何方式“插入或更新,如果存在”?

我需要定期更新一个非常大的表,SQLBulkCopy是完美的,只有我有一个2列索引,可以防止重复。 有没有办法使用SQLBulkCopy作为“插入或更新,如果存在”? 如果没有,最有效的方法是什么? 我再次谈论一张包含数百万条记录的表格。 谢谢

在LINQ查询中调用SQL用户定义的函数

我很难让这个工作。 我正在尝试使用IQueryable上的以下Filter助手进行半径搜索。 在RadiusSearch应用之前,还有一组其他filter可以应用。 顺序不应该真正重要,因为目标是将查询推迟到ToList()操作。 public static IQueryable RadiusSearch(this IQueryable communities) { var centerLatitude = 30.421278; var centerLongitude = -97.426261; var radius = 25; return communities.Select(c => new ApiSearchCommunity() { CommunityId = c.CommunityId, City = c.City, //Distance = c.GetArcDistance(centerLatitude, centerLongitude, c.Latitude, c.Longitude, radius) }); } 我可以以某种方式编写一个像GetArcDistance这样的帮助程序,然后在SQL上调用UDF吗? 我想要生成的查询如下 SELECT comms.community_id, comms.city, comms.distance FROM ( SELECT c.community_id, c.city, […]

如何在LINQ to Entities中使用SQL’LIKE’?

我有一个文本框,允许用户指定搜索字符串,包括通配符,例如: Joh* *Johnson *mit* *ack*on 在使用LINQ to Entities之前,我有一个存储过程,它将该字符串作为参数并执行: SELECT * FROM Table WHERE Name LIKE @searchTerm 然后我会在传入之前执行String.Replace(’*’,’%’)。 现在有了LINQ to Entities,我正在尝试完成同样的事情。 我知道有StartsWith,EndsWith和Contains支持,但它不会以我需要的方式支持它。 我读到了“SqlMethods.Like”并尝试了这个: var people = from t in entities.People where SqlMethods.Like(t.Name, searchTerm) select new { t.Name }; 但是我得到以下exception: LINQ to Entities does not recognize the method ‘Boolean Like(System.String, System.String)’ method, and this method cannot be […]

C#SQL插入命令

谁能告诉我以下2种插入记录的方式可以创造更好的性能? 情况1 SqlCommand cmd = new SqlCommand(); for (int i = 0; i < 10000; i++) { cmd = new SqlCommand("insert into test(id, name) value('" + i + "', '" + i + "')"); cmd.ExecuteNonQuery(); } 案例2 string sql = null; for (int i = 0; i < 10000; i++) { sql += "insert into […]

如何将SQL参数中的字符串数组传递给SQL中的IN子句

我正在以复杂的方式做的逻辑。 我只需要在存储过程中执行此查询: select Sizes, SUM(Quantity) from tbl_SizeBreakup where (Brand=@brand) and (Combo in (‘1′,’2’)) … 组合我必须在C#中使用SQL参数传递 DataSet dt = new DataSet(); cmd = new SqlCommand(); cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.CommandText = “sp_Accessories”; cmd.Connection = con; cmd.Parameters.AddRange( new SqlParameter[] { new SqlParameter(“@Mode”,mode), new SqlParameter(“@Combo”,combo), }} 所以如果我传递1个参数,按预期工作。 我应该传递的组合是一个string[] (字符串数组)。 数组长度可以取决于用户在UI中选择的任何内容。 我的问题是,如何将string[]传递给new SqlParameter(“@Combo”,combo) ? 我的存储过程.. ALTER proc [dbo].[sp_Accessories] ( @Mode […]