草庐IT

对数据库

全部标签

C# 将大量数据从 CSV 导入数据库

将大量数据从CSV(超过300万行)加载到数据库的最有效方法是什么。数据需要格式化(例如姓名列需要拆分为名字和姓氏等)我需要尽可能高效地完成这项工作,即时间限制我支持使用C#应用程序逐行读取、转换和加载数据的选项吗?这是理想的,如果不是,我有什么选择?我应该使用多线程吗? 最佳答案 您将受到I/O限制,因此多线程不一定会使它运行得更快。我上次这样做时,大约有十几行C#。在一个线程中,它运行硬盘的速度与从磁盘中读取数据的速度一样快。我一次从源文件中读取一行。如果你不想自己写,你可以试试FileHelpers图书馆。您可能还想看看Séb

c# - 为 C# MVC ASP.NET 应用程序创建的默认数据库在哪里?

我有新的MVCASP.NET应用程序在Bootstrap上使用登录/注册脚本,它工作正常,但我不知道这个应用程序的默认数据库在哪里。我的App_Data文件夹是空的。有人能告诉我表格注册的数据保存在哪里吗? 最佳答案 这将存储在visualstudio12,13&15附带的Sqlexpress下。您可以使用serverexploreunderView->serverExplorer连接它 关于c#-为C#MVCASP.NET应用程序创建的默认数据库在哪里?,我们在StackOverflo

c# - 通过 OLEDB 连接到 ACCDB 格式的 MS-ACCESS 数据库

我最近做了anotherquestion关于在C#或VB.NET中使用.NET连接到MS-ACCESS数据库。它在MDB中按预期工作,但在accdb中导致异常conn.Open();如下:alttexthttp://dl.dropbox.com/u/3045472/accdb_fail.png还有其他方法吗?我的初衷(如originalquestion中所述)是收集一些(实际上,很多)字段。 最佳答案 使用ACE4驱动,下载here然后使用以下连接字符串:"Provider=Microsoft.ACE.OLEDB.12.0;Data

c# - 为不同的数据库转换 SQL 查询

是否有工具可以将一个数据库的一个SQL查询转换为另一个数据库的SQL查询?对于SQLiteCREATETABLEConstantValues(IdintAUTOINCREMENTprimarykey,VariableNamevarchar(50),Valuesvarchar(150))对于SQLServerCREATETABLEConstantValues(IdINTEGERidentity(1,1)primarykey,VariableNamevarchar(50),Valuesvarchar(150))同样,Oracle和SQLServer也不同。同样在外键约束声明中,如果有一个工

c# - 用户的账户余额应该存储在数据库中还是动态计算?

用户的账户余额应该存储在数据库中还是动态计算?为了获得准确的结果,动态计算它是有意义的,但是当有很多用户并且数据库变得非常大时,这可能会成为一个问题?交易身份证(公钥)账号类型日期时间金额等等……等等……账户余额TransactionId(PK/FK)余额 最佳答案 为了保持准确的审计,您应该记录每笔影响用户账户余额的交易。这意味着您可以动态计算余额,但是出于性能原因,我也会存储余额。不过,为了确保余额正确,我每天都会运行一个作业,从头开始重新计算余额。 关于c#-用户的账户余额应该存储

c# - 使用 Async 和 Await 中断数据库调用(使用 Dapper)

我们从Dapper请求返回数千个对象并达到参数限制(2100),因此决定分块加载它们。我认为这是尝试AsyncAwait的好机会-这是我第一次尝试,所以可能会犯小学生错误!断点被击中,但整个事情就是没有返回。它没有抛出错误-一切似乎都在黑洞中进行!请帮忙!这是我原来的方法——它现在调用异步方法publicListGet(IEnumerableids){returnthis.GetMyObjectsAsync(ids).Result.ToList();}//Breakpointonthisfinalbracketnevergetshit我添加了这个方法来将id分成1000个block,然

c# - 使用 SQL 注入(inject)安全的参数插入数据库?

我读了一些关于SQL注入(inject)的文章,我想确保我的代码是“安全的”,我正计划使用RegExp验证器来检查用户输入,但这里的另一篇文章建议只使用参数化查询,我正在使用它们,但我想确保我的代码是安全的,对吗?using(SqlConnectiondataConnection=newSqlConnection(myConnectionString)){using(SqlCommanddataCommand=dataConnection.CreateCommand()){dataCommand.CommandText="INSERTINTOLines(Name,CreationTim

c# - 在运行时更改 Entity Framework 数据库架构

在大多数ASP.NET应用程序中,您可以通过在运行时修改连接字符串来更改数据库存储。即我可以通过简单地更改连接字符串中“数据库”字段的值来从使用测试数据库更改为生产数据库我正在尝试使用EntityFramework更改架构(但不一定是数据库本身),但没有成功。我看到的问题是edmxxml文件中的SSDL内容存储了每个实体集的模式。见下文现在我已经将模式属性值从测试更改为“prod”并且它有效..但这似乎不是一个好的解决方案。我需要更新evert实体集和存储过程(我有+50个表)我只能在编译时执行此操作吗?如果我随后尝试更新实体模型-由于EF无法识别该表已存在于edm中,因此正在读取已存

c# - 数据库更新后如何通知我的程序?

我有一个C#程序可以查询SQLServer数据库中的某些值。目前应用程序每分钟查询一次数据库以确保表是最新的。我希望能够做的是查询仅在数据库已更改/更新时完成。当数据库中的某些内容已更新时,我如何通知我的程序?谢谢 最佳答案 轮询数据库不是很优雅的解决方案。SqlDependency来自ADO.NET的文件对您的情况很有用。它不使用轮询,而是使用通知机制。通知由ServiceBroker在您的数据库中提供,因此需要在您的数据库中启用此服务。OnChange当指定表更改(更新、删除、插入..)时将引发事件下面是一个如何使用SqlDep

c# - .NET 和数据库层

当我上次从事编程工作时,我们试图从DataReaders和传统的ADO.NETAPI转向对象关系映射(ORM)。为此,我们通过sqlmetal为我们的数据库生成了一个DataContext。然后有一个薄数据层使DataContextprivate,任何需要访问数据库的代码都必须使用public方法这个薄数据层。这些方法基本上是存储过程;他们将通过LINQtoSQL对数据库执行查询。今天这是一种常见的方法吗?我的意思是,是否每个使用.NET3.5框架的人都在他们的构建过程中真正运行sqlmetal,或者什么?这在当时几乎像是黑客攻击。基本上,我想知道如果我今天要在不使用第三方开源软件的.