Tag: sql server 2008

SqlDependency notification – 执行查询后立即失败通知

我有一个问题,我试图设置SqlDependency通知,以便在sql服务器上的表中的数据发生更改时接收通知。 但是,只要我执行用于设置sql depenency的查询,就会立即收到通知,指示由于sql语句出现问题而导致订阅尝试失败( SqlNotificationEventArgs shows Info: Invalid, Source: Statement, Type: Subscribe ) 这表明sql查询存在问题,但是尝试了一个非常基本的示例以确保它不是select语句的问题,我仍然立即收到这些“无效”通知。 我还确保我已经启动了SQL Server的服务代理,创建了一个队列和通知服务,并授予了对主体的所有必要权限(在这种情况下,用户我正在连接到sql server)这里是我的桌子: CREATE TABLE [dbo].[TableTest]( [id] [int] NOT NULL, [val1] [int] NULL, [val2] [int] NULL, CONSTRAINT [PK_TableTest] PRIMARY KEY CLUSTERED ( [id] ASC ) ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) […]

entity framework:在关联中使用非主要唯一键的替代解决方案

我知道entity framework工作不允许您使用非主要唯一密钥作为外键关联从数据库生成模型。 我可以手动修改EDMX吗? 如果是这样,有人能为我提供一个例子或参考吗? 如果没有,还有其他可能吗? 最简单的例子: 这是表格的DDL。 你会注意到我有一个从PersonType.TypeCode到Person.TypeCode的外键 CREATE TABLE [dbo].[PersonType]( [PersonTypeId] [int] NOT NULL, [TypeCode] [varchar](10) NOT NULL, [TypeDesc] [varchar](max) NULL, CONSTRAINT [PK_PersonType] PRIMARY KEY CLUSTERED ([PersonTypeId] ASC) CONSTRAINT [UK_PersonType] UNIQUE NONCLUSTERED ([TypeCode] ASC) ) CREATE TABLE [dbo].[Person]( [PersonId] [int] NOT NULL, [TypeCode] [varchar](10) NOT NULL, CONSTRAINT [PK_Person] PRIMARY KEY CLUSTERED ([PersonId] ASC) ) […]

使用smo重命名数据文件

如何使用SMO重命名物理.mdf .ndf .ldf文件。 这篇文章很有帮助,但我需要使用C#SMO对象。 使用SMO服务器对象我可以检索数据库,然后获取对DataFile对象的访问权限。 按此链接 。 这些都有重命名,但重命名后,没有任何变化。

使用Entity Framework管理实体访问和权限

在使用Entity Framework 4.1的Web应用程序中,我们使用SQL Server Membership来管理用户访问。 但是,我们需要在权限管理中实现更细粒度的角色集。 在数据库中,我们已经创建了相关表: – Roles – Permissions – UserInRole (roles per user) – RolesPermissions (permissions associated to a role) 使用某些核心实体上的属性,我们使用EF限制语义访问,例如,给定特定用户,他/她只能看到相对发货的订单或固有数据。 现在我们想在其中注入权限,这意味着客户可以查看和创建订单,而公司 (这是两个不同的角色)只能查看其产品的订单并打印报告。 我们的想法是在实体级别也使用属性,并在调用方法时检查当前用户是否拥有适当的权限。 例如: public void BeforeAdd() { // Get required permissions for the specific entity (Order as example) //Check that current user has permission of creating a new Order } […]

连接池比保持一个连接打开要慢

我观察到了我们创建的客户端应用程序中连接池性能的一个有趣行为。 当用户点击某个对象时,会从数据库中加载更多特定于对象的数据。 根据对象的不同,每次点击需要10到30个查询。 这是通过使用连接池完成的,并且每个查询都是从池中的新连接调度的,并且在查询运行后连接已关闭。 我已经分析了探查器中的查询以进行性能优化,并看到那里有很多审计登录/注销条目。 此外,尽管查询自己运行良好(仅索引搜索/扫描操作符),但性能并非最佳。 只是为了尝试它,我禁用了池并修改了代码以保持每个客户端应用程序的一个连接并重用它。 这使整个应用程序响应更快,并且所有审计登录/注销条目都从分析器中消失。 这怎么可能? 连接不应该保持打开状态,或者它们是否实际保持打开状态至少不会这么慢? 是否有可能我们使用SqlConnection类错误导致禁用池? 我已经阅读了有关池化的其他post,但没有找到任何关于池化连接和重用相同连接之间可感知的速度差异的信息。 SqlConnection con = new SqlConnection(_connectionString); 连接被切换到提供事务function的包装类Session。 class Session{ Session(connection); Abort(); Commit(); } 连接在Abort()和Commit()中关闭。 其中一个总是被称为。

使用SMO库从C#中的Application运行.sql文件

我正在C#visual studio 2012 RC中构建应用程序。 我必须在应用程序中运行脚本。 为此,我正在使用。 这两个库。 我的应用程序的目标.net框架是4.5。 using Microsoft.SqlServer.Management.Smo; using Microsoft.SqlServer.Management.Common; 在检查天气数据库是否存在后,我编写了运行脚本的代码。 当我运行代码时,弹出一个意外的exception。 我真的知道它是什么意思。 你可以帮助我摆脱这个例外。 我也附加了我的代码和exception预览。 请帮助我…我已经用Google搜索过多了。 **Here are the Exception Details.** System.IO.FileLoadException未处理HResult = -2146232799 Message =混合模式程序集是针对运行时的版本’v2.0.50727’构建的,如果没有其他配置信息,则无法在4.0运行时加载。 Source = mscorlib StackTrace:System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly程序集,String name,Boolean throwOnError,Boolean ignoreCase,ObjectHandleOnStack类型),位于System.Reflection.RuntimeAssembly.GetType(String name,Boolean throwOnError,Boolean ignoreCase)。 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand,Microsoft.SqlServer.Management.Common.ServerConnection.GetStatements(String query,ExecutionTypes executionType,Int32&statementsToReverse)中的Reflection.Assembly.GetType(String name,Boolean throwOnError)。 ExecutionTypes executionType)在Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand)位于McFarlaneIndustriesPOSnamespace.SplashScreen.CreateDatabase()的e:\ Works \ McFarlane Industries \ McFarlane Industries销售点源代码\ McFarlaneIndustries […]

包含SqlGeometry的数据表导致存储过程执行失败…为什么?

我正在尝试将一系列SqlGeometry值保存到SQL Server 2008数据库。 基本上我在SQL Server存储过程中有一个tabletype,如下所示: CREATE TYPE [dbo].[TableType_Example] AS TABLE ( [SpatialID] [bigint] NOT NULL, [RecordID] [bigint] NOT NULL, [geom] [geometry] NOT NULL ) 然后我在C#中构建一个数据表并像这样发送: public static bool SaveSpatialDataElements(long recordID, List featureList) { //Setup features datatable DataTable dtFeatures = new DataTable(); dtFeatures.Columns.Add(“SpatialID”, typeof(SqlInt64)); dtFeatures.Columns.Add(“RecordID”, typeof(SqlInt64)); dtFeatures.Columns.Add(“geom”, typeof(SqlGeometry)); foreach(var curFeature in featureList) { object[] curRowObjects = […]

如何从SQL Server生成文档(docx或pdf)?

我知道这有点主观,但我正在研究以下情况: 我需要从SQL Server数据库中的数据自动生成许多文档。 将在数据库上安装一个MVC3应用程序以允许数据输入等,并且(可能)有一个“Go”按钮来生成文档。 需要有一些关于如何创建,命名和存储这些文档的业务逻辑(例如,“父”文档获得一个名称并进入一个文件夹,“子”文档获得计算名称并进入子文件夹。 只要输出可以是EN-US和AR-QA(RTL文本),文档可以是PDF或Doc(x)(甚​​至两者) 我知道SSRS,Crystal Reports,VSTO,代码中的“手动”PDF,单词邮件合并等等有很多选项……如果有任何用途,我们已经有了HTML到PDF工具吗? 有没有人对如何解决这个以及“最好”(最实用)的方法有什么现实世界的建议? 我需要在服务器上安装和配置的“额外”越少越好 – 开发越快越好(一如既往!) 到目前为止的调查结果: Word Mail Merge(或VSTO)根本不提供我所需要的简单性,控制性和灵活性 – 真的很遗憾。 很高兴定义一个dotx并能够在单独的基础上将数据传递给它以生成docx。 只有我能够实现这一点(我可能在这里错了)是通过名称循环控制/书签并替换值……凌乱。 OpenXML基于dotx模板创建文档,即使使用OpenXML也不如(IMHO)那么简单。 您必须按名称替换每个Content控件,因此维护不是最简单的任务。 SSRS从表面上看 ,这是一个很好的解决方案(尽管它需要SQL Enterprise),但是如果你想动态生成文件夹和文档,它会变得更加复杂。 数据驱动的订阅非常接近我想要的。 Winnovative HTML to PDF Convertor *这是我们已经拥有的工具(尽管是.Net 2.0版本)。 这允许我生成HTML页面并将它们转换为PDF。 对我来说是一个不错的选择,因为我可以在MVC3网站上运行它并将参数传递给控制器​​以生成PDF。 这使我对文件夹和命名结构进行了更细粒度的控制 – 这种方法的问题只是以正确的方式生成页面。 奖金是它自动给我一个“预览”……基本上只是HTML页面!

entity framework查询中令人难以置信的重复

针对特定视图的SQL查询返回3个不同的行。 select * from vwSummary where vidate >= ’10-15-2010′ and vidate <= '10-15-2010' and idno = '0330' order by viDate 但是如果我通过我的entity framework运行相同的查询,我得到3行,但所有3行都相同,相当于第三行。 firstVisibleDate = new DateTime(2010, 10, 15); lastVisibleDate = new DateTime(2010, 10, 15); var p1 = (from v in db.vwSummary where v.viDate >= firstVisibleDate && v.viDate <= lastVisibleDate && v.IDNo == "0330" select v).ToList(); […]

entity framework4每个层次结构表 – 如何定义儿童的导航属性?

我目前使用Table Per Type(TPT)实现了Entity Framework 4.0模型,但是存在一些性能问题(许多LOJ / CASE语句),以及两个特定域区域之间的问题映射(多个到 – 许多)。 我决定尝试TPH。 我有一个名为“ Location ”的实体,它是抽象的 ,是所有其他实体的基础。 然后我有“ 国家 ”,“ 城市 ”,“ 州 ”,“ 街道 ”等,这些都来自位置。 “ LocationType ”是判别者 。 该部分工作正常,但我在尝试为派生类型定义导航属性时遇到问题。 例如,“ 州 ”有一个“ 国家 ”,所以我应该能够这样做: var state = _ctx.Locations.OfType().Include(“Country”).First(); var countryForState = state.Country; 但这需要在“州”派生实体上称为“国家”的导航属性。 我该怎么做呢? 当我从数据库生成模型时,我有一个表,所有FK指向同一个表中的记录: (注意:我在DB中手动创建了这些FK)。 但是FK被定位为“ 位置 ”实体上的导航,那么如何将这些导航属性下移到派生实体? 我不能复制+粘贴导航,我不能“创建新的导航属性”,因为它不会让我定义开始/结束角色。 我们如何做到这一点? 如果我们可以先建立模型,或者我们必须从数据库开始,修复模型然后重新生成数据库,那么TPH也不清楚。 我还没有在互联网上找到一个关于如何使用TPH定义儿童导航的好例子。 注意: 我不想先执行代码 。 […]