Tag: sql server

首先对EF代码进行悲观锁定

我想专门锁定我的表中的指定行,因此在实际事务完成之前不会读取任何更新。 为此,我在数据库存储库中创建了一个帮助器类: public void PessimisticMyEntityHandler(Action<IEnumerable> fieldUpdater, string sql, params object[] parameters) { using (var scope = new System.Transactions.TransactionScope()) { fieldUpdater(DbContext.Set().SqlQuery(sql, parameters)); scope.Complete(); } } 这是我的测试代码。 基本上我只是开始两个任务,他们都尝试用Id’1’锁定行。 我的猜测是,第二个任务将无法读取(和更新)该行,直到第一个任务完成其工作,但输出窗口显示它实际上可以。 Task.Factory.StartNew(() => { var dbRepo = new DatabaseRepository(); dbRepo.PessimisticMyEntityHandler(myEntities => { Debug.WriteLine(“entered into lock1”); /* Modify some properties considering the current ones… */ var myEntity = myEntities.First(); Thread.Sleep(1500); […]

如何使用Visual C#从SQL Server表中获取ID号

作为初学者,我一直在培训数据库和C#编程概念。 我刚刚在SQL Server中创建了一个表,并在其中插入了一些图像文件。 我还创建了一个表单项目,将图像保存到该数据库表并检索以在图片框中显示它们。 我正在尝试获取ID号并加载到combobox,以便我可以选择相关图像的ID号。 我设法将图像文件保存到DB但我无法将ID号检索到combobox中。 我恳请您提供简单的解释和一些建议。 你可以在下面查看我的代码。 public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection(DBHandler.GetConnectionString()); try { OpenFileDialog fop = new OpenFileDialog(); fop.InitialDirectory = @”C:\”; fop.Filter = “[JPG,JPEG]|*.jpg”; if (fop.ShowDialog() == DialogResult.OK) { FileStream FS = new FileStream(@fop.FileName, […]

如何为SQL CLR存储过程提供sql_variant参数?

如何将sql_variant参数添加到SQL CLR存储过程? 使用System.Object不起作用,我没有看到任何可以使用的属性。 [Microsoft.SqlServer.Server.SqlProcedure] public static void ClearOnePartition( SqlString aString , /* I want this to be a sql_variant */ object aVariant ) { //do stuff here }

XslCompiledTransform和自定义XmlUrlResolver:“具有相同键的条目已存在”

有没有办法调试由自定义XmlUrlResolver从数据库加载的XSLT文档,或者有人知道,下面的错误消息是什么? 我有一个XSLT样式表导入一个常见的xslt文档: Scheme由一个自定义的XmlResolver处理,它从数据库加载XSLT文档,但是我收到一个错误: 已存在具有相同密钥的条目。 xsl:import引用的公共XSLT文档包含一些常见的XSLT模板,每个模板都有一个唯一的名称。 将XSLT文档从本地文件系统移动到数据库后,此错误开始发生。 使用指向本地文件的默认导入方案时以及从本地文件系统加载XSLT文档时,不会发生错误。 我还尝试在创建XslCompiledTransform的实例时打开调试,但不知何故不可能“进入”基于数据库的XSLT。 _xslHtmlOutput = new XslCompiledTransform(XSLT_DEBUG); 更新:以下基本上是请求的解析器​​代码,但我的代码中没有发生exception; 因此,我想在下面的代码中没有明显的原因。 (这个相同的代码实际上用于加载包含导入的XSLT样式表,当注释掉导入时,一切都按预期工作。) public class XmlDBResolver : XmlUrlResolver { private IDictionary GetUriComponents(String uri) { bool useXmlPre = false; uri = uri.Replace(“db://”, “”); useXmlPre = uri.StartsWith(“xml/”); uri = uri.Replace(“xml/”, “”); IDictionary dict = new Dictionary(); string app = null, area = null, subArea = […]

entity framework4.3.1无法创建(/打开)数据库

我曾经在一个MVC 3项目中使用过EF 4.1( Code First ),这很好。 今天我尝试在WinForms项目中使用EF 4.3.1( Code First )并遇到一些真正的巫术:(我正在研究的原始项目是WinForms,但是对于附加的控制台应用程序代码也是如此。) 当尝试在数据库中输入一个简单的类时,我得到以下exception: 无法打开登录请求的数据库“Test”。 登录失败。 用户'[ComputerName] \ [Administrator]’登录失败。 我已经尝试检查SQL Server(2008 R2)配置,但我的用户确实拥有服务器上的所有权限。 注意:首次运行应用程序时, 数据库不存在。 即使以下示例代码也不起作用: class Program { public static void Main() { var person = new Person { Name = “Nathan” }; using (var db = new MyContext()) { //#1 db.Persons.Add(person); db.SaveChanges(); } Console.Write(“Person saved !”); […]

如果2个或更多人在同一时间更新记录会发生什么?

我正在使用NHibernate和version属性,每次更新聚合根时都会自动递增。 如果2个或更多人在同一时间更新同一记录会怎样? 另外,我该怎么测试呢? 请注意,这不是我一直在进行的情况,只是想知道。

将多个表从SQL Server导出到XML以进行还原

我在C#/ ASP.NET中有一个Web应用程序。 我想导出所有数据库表的数据,使用相同的唯一键( Company ID )。 所有表都有这个键(每个公司都不一样)。 我想这样做以备将来备份。 是否可以使用Linq或经典的C#? 如何实现这种备份和恢复?

entity framework – SQL Server 2005 – IIS服务器日期时间问题

我正在使用MVC3和Entity Framework。 在我的应用程序中,我需要通过EF调用SQL Server 2005中的存储过程,以根据传递的datetime参数搜索某些数据。 一切似乎都在当地环境中运作良好。 但是在将其托管到IIS之后,我在尝试从13-08-2012开始搜索时遇到exception(13我想在SQL中作为月份) 错误说 SqlDateTime溢出。 必须在1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之间 我理解错误是因为System.Datetime和SqlDatetime之间的日期时间格式之间的SqlDatetime 。 但我不明白为什么它在我的本地环境中使用相同的SQL Server没有任何问题,但在IIS服务器托管后收到此错误。 这个问题有解决方法吗?

父子一对一关系相同的表

我有一个关于如何在Microsoft SQL-Server 2012中实现表关系的问题。 我有一个表(MyTable),它应该包含父/子结构。 一个父母可能有一个孩子,一个孩子只有一个父母。 这是一种经典的一对一关系。 最顶层的条目显然可能没有父级。 (这是通过可空的属性建模的) 当我尝试在MS-SQL中对此进行建模时,我收到如下表。 这是我的代码: CREATE TABLE [dbo].[MyTable]( [Id] [uniqueidentifier] PRIMARY KEY NOT NULL, [Name] [nvarchar](200) NOT NULL, [ParentObjectId] [uniqueidentifier] NULL ) GO ALTER TABLE [dbo].[MyTable] WITH CHECK ADD CONSTRAINT [FK_MyTable_ParentObject] FOREIGN KEY([ParentObjectId]) REFERENCES [dbo].[MyTable] ([Id]) GO ALTER TABLE [dbo].[MyTable] WITH CHECK ADD CONSTRAINT [Unique_ParentId] UNIQUE(ParentObjectId) GO ALTER TABLE [dbo].[MyTable] […]

获取SQL数据并将其显示在文本框中?

在过去的几天里,我试图从我的SQL表中获取数据并将其放入我的文本框中。 表名:“check”。 我正在使用的代码: SqlDataReader myReader = null; connection = new SqlConnection(System.Configuration.ConfigurationManager .ConnectionStrings[“ConnectionString”].ConnectionString); connection.Open(); var command = new SqlCommand(“SELECT * FROM [check]”, connection); myReader = command.ExecuteReader(); while (myReader.Read()) { TextBox1.Text = myReader.ToString(); } connection.Close(); 结果我没有得到任何结果。 谁知道为什么? 也许我没有正确调用SQL?