Tag: sql server

从SQL CLR调用Web服务?

我有一个返回表的SQL Server 2012存储过程。 我必须修改该SP以向返回的表添加其他值。 不幸的是,这种附加值来自对Web服务的调用。 从我的研究中,我收集的主要方法是在SQL中使用OLE自动化程序(sp_OA …),或者使用SQLCLR存储过程。 给定sp_OA …过程运行的安全上下文,单个返回值是VARCHAR(10)注册密钥,并且对服务的调用很少(每小时10到20个),我猜测SQLCLR方法是要走的路。 此外,Web服务托管在我们的Intranet上,外部世界无法访问。 有没有更好的方法来完成我需要的东西? 更好的意思是更高性能,更好的安全性,更容易编码和维护

什么可以导致EntityCommandDefinition.ExecuteStoreCommands中的EntityCommandExecutionException?

从SQL Server 2008数据库运行的C#程序中的SQL Server视图中选择一个特定的LINQ-to-SQL查询,该数据库在我的本地开发环境中运行良好,在暂存环境中运行时会产生exception: Exception Message: An error occurred while executing the command definition. See the inner exception for details. Exception Trace: System.Data.Entity.Core.EntityCommandExecutionException at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior) at System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext context, ObjectParameterCollection parameterValues) at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess) at System.Data.Entity.Core.Objects.ObjectQuery`1.c__DisplayClass7.b__5() at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation) at System.Data.Entity.Core.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption) at System.Data.Entity.Core.Objects.ObjectQuery`1..GetEnumerator>b__0() at System.Data.Entity.Internal.LazyEnumerator`1.MoveNext() at […]

SQL Server:在事务中包装SELECT查询是否有任何性能损失?

作为学习练习,在尝试使用任何ORM(如EF)之前,我想使用ADO.NET和存储过程构建个人项目。 因为我不希望我的代码随着时间的推移变得混乱,我想使用一些模式,如存储库和UoW模式。 除了交易处理之外,几乎所有事情都已经解决了。 以某种方式’模拟’一个UoW,我使用了@jgauffin提供的这个类 ,但阻止我使用该类的是每次你创建该类的新实例( AdoNetUnitOfWork )时,你自动开始一个事务并且有一个很多情况下你只需要读取数据。 在这方面,这是我在我读过的一本SQL书中找到的: 在事务中执行SELECT语句可以在引用的表上创建锁定,这可以阻止其他用户或会话执行工作或读取数据 这是AdoNetUnitOfWork类: public class AdoNetUnitOfWork : IUnitOfWork { public AdoNetUnitOfWork(IDbConnection connection, bool ownsConnection) { _connection = connection; _ownsConnection=ownsConnection; _transaction = connection.BeginTransaction(); } public IDbCommand CreateCommand() { var command = _connection.CreateCommand(); command.Transaction = _transaction; return command; } public void SaveChanges() { if (_transaction == null) throw new InvalidOperationException(“Transaction […]

如何在EF4实体上提取属性的数据库表和列名?

我正在为使用EF4进行数据访问层的应用程序编写审计组件。 我能够非常轻松地确定哪些实体已被修改,并且通过ObjectStateEntry对象,我可以提取已修改的原始值,当前值,实体名称和属性名称,但我还想提取原始表格和SQL Server中使用的列名和列名(因为它们并不总是与模型的实体和属性名称匹配) 有谁知道这样做的好方法? 它甚至可能吗? 映射显然存储在MSL中,但我无法找到以编程方式访问这些映射的方法。

小巧玲珑的简单映射

表: create table Documents (Id int, SomeText varchar(100), CustomerId int, CustomerName varchar(100) ) insert into Documents (Id, SomeText, CustomerId, CustomerName) select 1, ‘1’, 1, ‘Name1’ union all select 2, ‘2’, 2, ‘Name2’ 类别: public class Document { public int Id { get; set; } public string SomeText { get; set; } public Customer { get; […]

在打开SqlConnection之前处理不同的ConnectionStates

如果您需要在发出查询之前打开SqlConnection,您是否可以以相同的方式处理所有非Open ConnectionStates? 例如: if (connection.State != ConnectionState.Open) { connection.Open(); } 我读到了某个地方,对于ConnectionState.Broken,连接需要在重新打开之前关闭。 有任何人对此有经验吗? 谢谢-

在SQL Server中使用GO关键字

我知道使用GO关键字。 它将多个语句作为整个组发送到sql server,而不是逐个发送每个语句。 我希望我是对的! 但我想知道程序员在实际应用程序中使用它。 就像我们创建一个存储过程,然后它也做同样的事情,它也编译代码并制定执行计划,并将整个组发送到服务器。 那么我们是否需要在数据库对象的编码中指定GO关键字,例如触发器,视图和存储过程?

C# – SQLClient – 最简单的INSERT

我基本上试图找出使用SqlClient命名空间在C#.NET中执行基本插入操作的最简单方法。 我正在使用SqlConnection作为我的数据库链接,我已经成功执行了一些读取,我想知道插入数据的最简单方法。 当我谷歌时,我发现了一些看似相当冗长的方法。

按Linq to SQL中的每周(周数)分组

在常规SQL中我可以做类似的事情 SELECT * From T GROUP BY DATEPART(wk, T.Date) 我怎么能在Linq to SQL中做到这一点? 以下不起作用 From F In DB.T Group R By DatePart(DateInterval.WeekOfYear, F.Date) 也不工作: From F In DB.T Group R By (F.Date.DayOfYear / 7)

数据库正被另一个进程使用……但是什么进程?

我编写了一个非常小的C#程序,它使用一个非常小的SQL Server数据库,纯粹用于一些学习和测试目的。 数据库用于这个新项目,而不是其他任何地方。 但是,我在运行程序无法运行的Debugs时遇到问题,因为数据库“正由另一个进程使用”。 如果我重新启动我的机器,它将再次工作,然后经过几次测试运行后,我将再次遇到同样的问题。 我发现在互联网上报告了许多类似的问题,但是没有找到关于如何解决这个问题的明确答案。 首先,我如何找出使用我的.mdf和.ldf文件的“其他进程”? 然后,如何释放这些文件而不是为了在一段时间后停止这种发生的时间而不被保留?!? 我是VS2010,SQL Server和C#的新手,所以请在你给我的任何回复中描述一下! 这是我的代码,正如你所看到的,你无法获得更基本的东西,我当然不应该遇到这么多问题! namespace MySqlTest { public partial class Form1 : Form { SqlConnection myDB = new SqlConnection(@”Data Source=MEDESKTOP;AttachDbFilename=|DataDirectory|\SqlTestDB.mdf;Initial Catalog=MySqlDB;Integrated Security=True”); SqlDataAdapter myDA = new SqlDataAdapter(); SqlCommand mySqlCmd = new SqlCommand(); string mySQLcmd; int myCount; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { […]