草庐IT

SQL之插入

全部标签

c# - 从 .net 存储 10 - 1 亿个模拟输出的最佳方式(SQL 与平面文件)

我一直在从事一个项目,该项目从模拟中生成大约10到1亿个输出,我想存储这些输出以供将来分析。数据有几个自然级别的组织,例如教室里的学生参加的考试有一些不同的表现指标。就能够一次放入内存而言,我的数据似乎是边界线(考虑到模拟的计算需要内存中的大量数据来进行计算),但我没有立即需要所有数据立即可供我的程序使用。我正在考虑将计算值输出到SQL数据库还是纯文本文件会更好。我正在寻找有关哪种方法可能更快/更容易维护的建议(或者如果您有存储数据的替代建议,我对此持开放态度)。我不需要能够与其他任何人共享数据,也不需要担心在未来几年访问数据。我只需要一种方便的方法来避免每次我想对值的分析进行调整时重

c# - 使用 LINQ-to-SQL 从事务内部回滚存储过程调用?

我有一个与SQLServer数据库一起运行的C#.netwinform程序。我正在使用LINQ-to-SQL。是否可以在我的程序中使用LINQ-to-SQL回滚对一个或多个存储过程的调用?最初我认为在存储过程中管理事务是有意义的,但如果我需要回滚多个存储过程调用作为单个事务的一部分,则需要在我的C#程序中完成。谁能给我指出一个代码片段来说明如何做到这一点,或者提供一些替代方案的见解? 最佳答案 DbTransaction的另一种选择是TransactionScope-这提供了一个更简单的编程模型,并且可以扩展到多个同步数据库和其他提

c# - SQL 2008 : returning data rows as JSON?

我觉得这个问题就像是射粘土飞鸽..“拉……砰!”..被击落..但尽管如此,我相信还是值得一问。现在很多JS框架等都使用JSON,我知道这是有充分理由的。经典问题是“在哪里将数据转换为JSON”。我知道在管道中的某个时刻,您必须将数据转换为JSON,无论是在数据访问层(我正在查看JSON.NET)还是我相信.NET4.x都有方法输出/序列化为JSON。所以问题是:考虑将SQL函数输出为JSON真的是个坏主意吗?预选赛:我知道尝试像那样输出1000行不是一个好主意——事实上,无论哪种方式对于Web应用程序来说都不是一个好主意,除非你真的必须这样做。根据我的要求,我一次可能需要100行...

c# - 如何强制报表始终插入分页符?

我在VisualStudio2012中创建了一个包含两个报表定义的报表。主报告部分每辆车重复一次,它有一个子报告,该部分为车辆的每次交付重复一次。主要报表设计如下所示:左侧的橙色条表示已选中所有其他元素所在的矩形。我在上面设置了以下属性:我还在包含其他元素的Tablix上设置了Addapagebreakbefore和Addapagebreakafter:此报表设计上没有其他Rectangle或Tablix。我的问题是它并不总是在前后进行分页。在只有少量信息的页面上,它将每辆车放在同一页面上,如下所示:但是当一个车辆长于一个页面时,它会溢出到下一页,而下一个车辆不会在它之前添加分页符,就

c# - 解析 C# 代码(作为字符串)并插入其他方法

我有一个正在开发的C#应用程序,它可以远程加载它的代码,然后运行它(为了论证,您可以假设该应用程序是安全的)。代码是C#,但它作为XML文档发送,解析为字符串,然后编译和执行。现在,我想做的-比我预期的要困难一些-能够解析整个文档,并在编译之前,在每行执行后插入额外的命令。例如,考虑以下代码:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;namespaceMyCode{staticclassMyProg{staticvoidRun(){inti=0;i++;Log(i);}}}我想要的,在解析之后更像是:usi

c# - 如何在单个事务中将文件写入磁盘并插入数据库记录?

我正在尝试将文件写入磁盘以及通过存储过程将数据插入数据库,所有这些都在原子事务中进行。即,如果这两个操作中的任何一个失败(文件无法写入磁盘或存储过程失败),我什么都不做,只是将异常抛回给调用者。关于如何最好地处理文件写入和数据库插入的原子事务有什么建议吗?附加信息:我在MSSQLServer中使用带有存储过程的C#.NET,但不一定针对这些技术量身定制的通用解决方案也很好。更新:在查看了以下所有答案并研究了其他答案后,我写了thispost关于如何使用3种不同的方法解决这个问题。 最佳答案 你需要使用新的TxF,Vista、Wind

c# - 如何在不安装 SQL Server Express Edition 的情况下在 Visual Studio 中添加 SQL Server 数据库文件 (.mdf)?

在VisualStudio2010项目中添加.mdf文件(SQLServer数据库)时出现以下错误ConnectionstoSQLServerdatabasefiles(.mdf)requireSQLServer2005ExpressorSQLServer2008Expresstobeinstalledandrunningonthelocalcomputer我不想安装SQLServerExpress(2005/2008)因为我已经安装了SQLServer2005企业版我正在使用VisualStudio2010Ultimate 最佳答案

c# - 使用 SQL Server 数据事件进行消息传递

在我们的组织中,我们有一个SQLServer2005数据库和相当数量的数据库客户端:网站(php、zope、asp.net)、富客户端(legacyfoxpro)。现在我们需要将核心数据库中的某些事件传递给其他系统(MongoDb、LDAP等)。消息传递范式似乎非常有能力解决此类问题。所以我们决定使用RabbitMQbroker作为中间件。从数据库中消费事件的问题起初似乎只有两种可能的解决方案:轮询数据库中的传出消息并将它们传递给消息代理。在某些表上使用触发器将消息传递到同一台机器上的代理。由于涉及定期执行sql时出现的延迟问题,我不喜欢第一个想法。但是基于事件的触发器方法有一个问题,

C#锁定SQL Server表的方法

我有一个C#程序需要对SQLServer表执行一组批量更新(20k+)。由于其他用户可以通过Intranet网站一次更新这些记录,因此我们需要构建具有锁定表功能的C#程序。一旦表被锁定以防止其他用户进行任何更改/搜索,我们将需要执行请求的更新/插入。由于我们要处理如此多的记录,我们不能使用TransactionScope(起初似乎是最简单的方法),因为我们的交易最终由MSDTCservice处理.我们需要使用另一种方法。根据我在Internet上阅读的内容,使用SqlTransaction对象似乎是最好的方法,但是我无法锁定表。当程序运行并且我单步执行下面的代码时,我仍然能够通过内部网

c# - Entity Framework 更新/插入多个实体

只是我要完成的事情的概述。我们在我们的应用程序中保留远程数据库(第3方)的本地副本。我们使用api下载信息。我们目前按计划下载信息,然后将新记录插入本地数据库或更新现有记录。这是它目前的工作方式publicvoidProcessApiData(ListapiData){//gettheexistingaccountsfromthelocaldatabaseListexistingAccounts=_accountRepository.GetAllList();foreach(accountinapiData){//checkifitalreadyexistsinthelocaldata