Tag: sql

LINQ to Entities不能识别方法System.String ToString()方法,并且这个方法不能被转换成存储expression式

我正在从一个MySQL服务器迁移一些东西到一个SQL服务器,但我不知道如何使这个代码工作: using (var context = new Context()) { … foreach (var item in collection) { IQueryable<entity> pages = from p in context.pages where p.Serial == item.Key.ToString() select p; foreach (var page in pages) { DataManager.AddPageToDocument(page, item.Value); } } Console.WriteLine("Done!"); Console.Read(); } 当它进入第二个foreach (var page in pages)它会抛出一个exception说: LINQ to Entities不能识别方法System.String ToString()方法,并且此方法不能被转换成存储expression式。 任何人都知道为什么会这样

SQL拆分逗号分隔的行

我有一个可变数量的逗号分隔值的列: somethingA,somethingB,somethingC somethingElseA, somethingElseB 我想要结果采取每个值,并创build一个行: somethingA somethingB somethingC somethingElseA somethingElseB 我怎么能在SQL(MySQL)中做到这一点? (我试过用googlesearch“内爆”和“侧面看”,但似乎没有提出相关的问题,所有相关的问题都试图做更复杂的事情)

参数是否足以防止Sql注入?

我一直在向我的同事们讲述如何在SQL查询中使用参数,特别是在.NET应用程序中。 我甚至已经承诺给予他们免于SQL注入攻击。 但是我开始怀疑这是否属实。 是否有任何已知的SQL注入攻击将成功参数化查询? 你可以例如发送一个string,导致服务器上的缓冲区溢出? 当然还有其他一些考虑要确保一个Web应用程序是安全的(比如清理用户input和所有这些东西),但现在我正在考虑SQL注入。 我特别感兴趣的是对MsSQL 2005和2008的攻击,因为它们是我的主数据库,但是所有的数据库都很有趣。 编辑:澄清我的意思是参数和参数化查询。 通过使用参数我的意思是使用“variables”,而不是build立一个string的SQL查询。 所以不要这样做: SELECT * FROM Table WHERE Name = 'a name' 我们这样做: SELECT * FROM Table WHERE Name = @Name 然后在查询/命令对象上设置@Name参数的值。

SQL中的单引号和双引号有什么区别?

SQL中单引号和双引号之间的区别是什么?

varchar和nvarchar SQL Server数据types之间的主要性能差异是什么?

我正在使用SQL Server 2005在我学校的一个小型Web应用程序的数据库上工作。 我在varchar和nvarchar的问题上看到了几个学派: 除非处理大量国际化数据,否则使用varchar ,然后使用nvarchar 。 只要使用nvarchar的一切。 我开始看到视图2的优点了。我知道nvarchar占用了两倍的空间,但这不一定是一笔巨大的交易,因为这只能为数百名学生存储数据。 对我来说,似乎是最简单的,不要担心它,只是允许一切使用nvarchar。 还是有什么我失踪?

使用准备好的语句来设置表名

我试图使用准备语句来设置表名来select数据,但是当我执行查询时,我不断收到错误。 错误和示例代码显示在下面。 [Microsoft][ODBC Microsoft Access Driver] Parameter 'Pa_RaM000' specified where a table name is required. private String query1 = "SELECT plantID, edrman, plant, vaxnode FROM [?]"; //?=date public Execute(String reportDate){ try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn = DriverManager.getConnection(Display.DB_MERC); PreparedStatement st = conn.prepareStatement(query1); st.setString(1, reportDate); ResultSet rs = st.executeQuery(); 有什么想法可能造成这个?

如何从SQL Server内存中清理SqlDependency?

如何清理SQL Server以摆脱过期的SqlDependency对象? 在从SqlDepedency对象接收到事件后,我需要创build一个新的事件,然后才能获取新事件。 但是,SQL Server进程的内存使用会一直攀升,直到超出允许的内存(SQL Server Express)。 我如何摆脱旧的查询? 码: // Func: RegisterTableListener using (SqlConnection cn = new SqlConnection(Properties.Settings.Default.DatabseEventConnectionString)) { if (cmd == null) { cmd = cn.CreateCommand(); cmd.CommandType = CommandType.Text; cmd.CommandText = "SELECT HostName, LastStatus, LastDetails, xml FROM dbo.[SystemTable]"; } lock (cmd) { cmd.Connection = cn; cn.Open(); cmd.Notification = null; // creates a new dependency […]

连接行值T-SQL

我正在试图将一些数据汇总在一起,需要连接其中一个表的行值。 这里是基本的表结构: 评测 ReviewID ReviewDate 评审 ReviewerID ReviewID UserID 用户 UserID FName LName 这是M:M的关系。 每个评论可以有许多评论者; 每个用户可以与许多评论相关联。 基本上,我只想看到的是Review.ReviewID,Reviews.ReviewDate和该评论的所有关联用户的FName的连接string(逗号分隔)。 代替: ReviewID—ReviewDate—User 1———-12/1/2009—-Bob 1———-12/1/2009—-Joe 1———-12/1/2009—-Frank 2———-12/9/2009—-Sue 2———-12/9/2009—-Alice 显示这个: ReviewID—ReviewDate—-Users 1———-12/1/2009—–Bob, Joe, Frank 2———-12/9/2009—–Sue, Alice 我发现这篇文章描述了一些方法来做到这一点,但其中大多数似乎只处理一个表,而不是多个; 不幸的是,我的SQL-fu不够强大,不能适应我的情况。 我特别感兴趣的是使用FOR XML PATH()的那个网站上的例子,因为这看起来是最干净和最直接的。 SELECT p1.CategoryId, ( SELECT ProductName + ', ' FROM Northwind.dbo.Products p2 WHERE p2.CategoryId = p1.CategoryId ORDER BY ProductName FOR […]

PostgreSQL:以分钟为单位运行查询的行数

我需要每分钟查询到那一刻的总计数。 我迄今为止所能达到的最好效果并不能解决问题。 它返回每分钟计数,而不是每分钟的总计数: SELECT COUNT(id) AS count , EXTRACT(hour from "when") AS hour , EXTRACT(minute from "when") AS minute FROM mytable GROUP BY hour, minute

Oracle“(+)”运算符

我正在检查一些旧的SQL语句,以便logging它们,并可能加强它们。 DBMS是Oracle 我不明白这样的陈述: select … from a,b where a.id=b.id(+) 我对(+)操作符感到困惑,无法在任何论坛上find它(search引号内的内容也不起作用)。 无论如何,我使用SQLDeveloper的“解释计划”,我得到了一个输出,说HASH JOIN, RIGHT OUTER等 如果我在查询结尾删除(+)运算符,会有什么区别吗? 数据库是否必须满足某些条件(如有一些索引等)才能使用(+) ? 如果你能给我一个简单的理解,或者我可以阅读这方面的一些很好的链接,这将是非常有帮助的。 谢谢!