从datagridview向mysql数据库插入值的最快方法是什么?
我有一个vb.net系统,我想将10,000个或更多记录从datagridview插入MySQL数据库.但是,当我尝试此 时,需要8分钟才能获得10,000个记录 For i As Integer = 0 To DataGridView1.Rows.Count - 1 Dim queryInsert As String = "INSERT INTO tbl_shipdetails (ship_date, item_type, item_code, imei1, imei2)" & _ "VALUES('" & DataGridView1.Rows(i).Cells(1).Value & "','" & DataGridView1.Rows(i).Cells(2).Value & "','" & DataGridView1.Rows(
0 2023-11-14
编程技术问答社区
Rails:针对一个集合而不是数据库表,使用现有的模型验证规则。
rails 4,mongoid而不是activerecord(但这应该为问题而改变任何东西). 假设我有一个带有一些验证规则的MyModel域类: class MyModel include Mongoid::Document field :text, type: String field :type, type: String belongs_to :parent validates :text, presence: true validates :type, inclusion: %w(A B C) validates_uniqueness_of :text, scope: :parent # important validation rule for the purpose of the question end 其中Parent是另一个域类: class Parent include Mongoid::Documen
2 2023-11-13
编程技术问答社区
如何在SQL Server中使用批量插入写入UTF-8字符?
我在SQLServer中进行大量插入,并且它没有正确地将UTF-8字符插入数据库中.数据文件包含这些字符,但是数据库行包含批量插入执行后包含垃圾字符. 我的第一个嫌疑人是格式文件的最后一行: 10.0 3 1 SQLCHAR 0 0 "{|}" 1 INSTANCEID "" 2 SQLCHAR 0 0 "{|}" 2 PROPERTYID "" 3 SQLCHAR 0 0 "[|]" 3 CONTENTTEXT "SQL_Latin1_General_CP1_CI_AS" 但是,在阅读官方页面在我看来,这实际上是通过SQL Server版本2008中的插入操作读取数据文件的错误.我们使用了2008年版R2. 解决此问题的方法是什么或至少解决方法? 解决方案 你不能.您应该首先使用N类型数据字段,将文件转换为UTF-16,然后将其导入.该数据库不支持UTF-8. 其他解决方案 我来这里之前,然后寻找散装插入特殊角色的解决方案.
0 2023-11-11
编程技术问答社区
用SQL Server 2016批量导入Unicode
由于我们已经迁移到SQL Server 2016,因此我们现在尝试通过使用非XML格式文件和UTF-8编码数据文件(使用Newline Unix(LF))将Unicode字符导入表中.格式文件指定主机文件数据长度,但没有指定终结器.主机文件数据类型为SQLCHAR.我的批量插入语句看起来像: SET @cmd = N'Bulk Insert myTable from ''D:\DATA\datafile'' with (DATAFILETYPE =''widechar'', KEEPNULLS, FORMATFILE = ''D:\DATA\fmt\formatfile.ftm'' ,MAXERRORS = 0, codepage=65001, FIRSTROW = 1)' EXECUTE (@cmd) 格式文件: 9.0 7 1 SQLCHAR 0 8 "" 1 column_1 "
0 2023-11-06
编程技术问答社区
使用BCP插入带有Unicode字符的行
我正在使用BCP将数据从CSV文件上传到SQL Azure(因为不支持批量插入).此命令运行并上传行: bcp [resource].dbo.TableName in C:\data.csv -t "," -r "0x0a" -c -U bcpuser@resource -S tcp:resource.database.windows.net 但是data.csv是编码UTF8并包含非ASCII字符串.这些被腐败了.我尝试将-c选项更改为-w: bcp [resource].dbo.TableName in C:\data.csv -t "," -r "0x0a" -w -U bcpuser@resource -S tcp:resource.database.windows.net ,但是我得到了'0行复制'. 我在做什么错,如何使用BCP插入Unicode字符? 解决方案 但是data.csv是utf8编码 UTF-8编码是主要问题.使用-w
0 2023-11-06
编程技术问答社区
python sqlalchemy在一个元组数据结构中插入多行数据
我一直在研究如何插入一个约500个元组(行)列表,该列表将有7个元素(列)插入数据库中.我已经阅读了有关Stackoverflow以及其他论坛的各种帖子.我找到了以下内容,建议使用"执行人()"方法,但对我来说并不清楚.我需要掩盖从元组到字典的对象吗?问题是我没有名称:数据结构的值类型. 如何使用SQLalchemy将SQL文件从查询表达式转储到批量插入到DBMS中? Here is an example: engine = create_engine('sqlite:///:memory:', echo=True) metadata = MetaData() hockey= Table('hockey', metadata, Column('team', String(16), primary_key=True), Column('jersey_colour', String(16)), Column('stadium', String(32))
8 2023-10-27
编程技术问答社区
T-SQL BULK INSERT类型不匹配
我正在尝试将一个简单的批量插入从一个大的CSV文件插入到表.表和文件具有匹配列.这是我的代码: BULK INSERT myTable FROM 'G:\Tests\mySource.csv' WITH ( FIRSTROW = 2, FIELDTERMINATOR = ',', ROWTERMINATOR = '\n', -- ROWTERMINATOR = '0x0a', BATCHSIZE = 1000, MAXERRORS = 2 ) GO 您可以看到,我已经尝试了行终端\n和0x0a(还有更多) 我不断获得类型不匹配错误: Msg 4864, Level 16, State 1, Line 1 Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 2, co
0 2023-10-27
编程技术问答社区
T-SQL 使用一个条件和不使用游标向多个链接表插入数据
t-sql使用条件插入多个链接表中,而无需使用光标. 你好, 我有以下表格 CREATE TABLE [dbo].[TestMergeQuote]( [uid] [uniqueidentifier] NOT NULL, [otherData] [nvarchar](50) NULL, CONSTRAINT [PK_TestMergeQuote] PRIMARY KEY CLUSTERED ( [uid] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] ALTER TABLE [dbo].[TestMergeQuote] ADD CONSTRAINT [DF_TestMerg
0 2023-10-27
编程技术问答社区
如何导入日期格式不被认可的CSV?
这就是表的样子: CREATE TABLE [dbo].[temptable] ( [id] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [datetime] [datetime] NOT NULL, [status] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, [col4] [money] NULL, [col5] [float] NULL, [col6] [money] NULL, [col7] [float] NULL, [col8] [money] NULL, [total] [money] NOT NULL ) 这就是CSV的样子:
2 2023-10-27
编程技术问答社区
带有两行终结符的大量插入程序
我正在尝试导入文本文件,因此结果将只是单词中单词的单词. 例如文本: '你好妈妈, 我们再次见面' 应提供5个记录: 'Hello' 'Mom,' 'we' 'meet' 'again' 我试图用BULK INSERT用ROWTERMINATOR = ' '来完成此操作,但是将new line视为terminator也存在问题,结果我在其中一个结果中得到了'Mom,we'. 我所知道的,无法将second ROWTEMRMINATOR添加到BULK INSERT(true?). 如上所述,您知道实现结果的最佳方法是什么? 该文件不能在SQL Server之外进行预处理,该方法对于数百个带有单词行的文件应该有用,在不同时间导入,而不仅仅是一次. 解决方案 给定: 不能在SQL Server之外预处理文件 选项1 为什么不使用格式看起来像以下内容: 格式file =拆分每一行 INSERT INTO dbo.
4 2023-10-27
编程技术问答社区
如何使用批量插入csv到sql server的日期格式正确?
我想使用批量插入文件CSV插入到 SQL Server 2012 .同一列具有DateTime,但使用Bulk Insert DateTime格式不起​​作用,并且我不使用SSIS . 示例创建表 CREATE TABLE [dbo].[scanindex_test]( [request_no] [varchar](13) NOT NULL, [request_date] [datetime] NULL, [id_card] [varchar](20) NULL, [firstname] [varchar](100) NULL, [surname] [varchar](100) NULL ) 查询SQL Server 2012: declare @path varchar(255), @sql varchar(5000) SET @path = 'C:\Test\
0 2023-10-27
编程技术问答社区
在BULK INSERT中TRY没有捕捉到错误。
为什么在以下代码中尝试未捕获错误,我该如何捕获此错误? BEGIN TRY BULK INSERT [dbo].[tblABC] FROM 'C:\temp.txt' WITH (DATAFILETYPE = 'widechar',FIELDTERMINATOR = ';',ROWTERMINATOR = '\n') END TRY BEGIN CATCH select error_message() END CATCH 我只是得到这个: Msg 4860, Level 16, State 1, Line 2 Cannot bulk load. The file "C:\temp.txt" does not exist. 解决方案 这是一个有助于捕获此错误的选项: BEGIN TRY DECLARE @cmd varchar(1000) SET @cmd = 'BULK INSERT [dbo].[tblABC] FROM ''C:
0 2023-10-27
编程技术问答社区
TSQL。用INSERT INTO SELECT FROM进行UPDATE
所以我有一个旧的数据库,它正在迁移到一个新数据库.新的具有略有不同但大多数兼容的模式.此外,我想从零开始所有桌子. 当前,我一直在使用我编写的工具,该工具可以手动检索旧记录,将其插入新数据库,并在旧数据库中更新一个V2 ID字段,以在新数据库中显示其相应的ID位置. 例如,我正在从mv5.post中选择并插入mv6.posts.插入时,我在mv6中检索新行的ID. 是否有一种方法可以通过inserts ins select进行此更新,因此我不必手动处理每个记录?我正在使用SQL Server 2005,Dev Edition. 解决方案 迁移的关键是要做几件事: 首先,如果没有当前的备份,请不要做任何事情. 其次,如果键将更改,则至少需要暂时将旧结构和新结构存储(如果密钥字段接触到用户,因为他们可能会搜索它以获取旧记录). 接下来,您需要对与儿童桌子的关系有深入的了解.如果更改密钥字段,则所有相关表都必须更改.在这里,将旧密钥和新密钥都派上用场.如果您忘记
4 2023-10-27
编程技术问答社区
在SQL中批量插入.txt文件
我正在尝试将.txt文件导入高级查询工具(我使用的SQL客户端).到目前为止,我有: CREATE TABLE #tb_test ( id INTEGER, name varchar(10), dob date, city char(20), state char(20), zip integer ); insert into #tb_test values (1,'TEST','2015-01-01','TEST','TEST',11111) ; bulk insert #tb_test from 'h:\tbdata.txt' with ( fieldterminator = '\t', rowterminator = '\n' ); 我收到一条错误消息,说第1行上有一个语法错误.我是否缺少#tb_test来的数据库(例如db.#tb_test)? 这是tbdata.txt文件的一行: 2,'TEST2','2012-
6 2023-10-27
编程技术问答社区
如何在OPENROWSET(BULK...)中动态指定一个文件的路径?
我想将图像插入图像字段中,最好使用将接受图像路径的存储过程.入侵后,我提出了这个; -- functional DECLARE @parameters nvarchar(max) = ''; DECLARE @sql_string nvarchar(max) = N'UPDATE MyTable SET MyImageField = (SELECT BulkColumn FROM Openrowset(Bulk ''' + @PathToMyImage + ''', Single_Blob) ImageData) WHERE MyPrimaryKey = ' + CAST(@PrimaryKey AS NVARCHAR(max)); EXECUTE sp_executesql @sql_string, @parameters 我这样做是因为我尝试过; --Not functional INSERT INTO My
2 2023-10-27
编程技术问答社区
BULK INSERT内部是如何工作的?
有人可以解释一下内部插件的工作方式,为什么它比普通插入操作快得多? 问候, Shishir. 解决方案 Bulk Insert使用SQL Server的数据库引擎运行进程,因此避免通过客户端API的网络层传递数据 - 这使其比BCP和DTS/SSIS更快. 另外,使用批量插入,您可以按数据的顺序指定订单,如果与表的PK相同,则锁定在页面级别.写入交易日志的写入页面级别而不是行级别. 在常规插入的情况下,锁定和交易日志的写入为行级别.这使插入速度比插入语句更快. 其他解决方案 至少可以避免创建和承诺要插入的每条记录的交易的开销.还有其他节省的资金:例如,在整个网络上运送较大的数据,而不是一次记录会有所帮助. 那么,也许更有趣的是,数据库实施者可以(我不知道是否有任何特定供应商确实这样做)开始变得聪明 - 他们可以查看要插入的一组记录,而不是将数据页面重新组织为可容纳单个记录可以对页面进行大量的重组以允许新的插入,同样,我们可以想象,如果我们知道我们正在插
4 2023-10-27
编程技术问答社区
如何将一个文件大量插入到一个*临时*表中,其中文件名是一个变量?
我有一些这样的代码,我用来将数据文件大量插入到表中,其中数据文件和表名称是变量: DECLARE @sql AS NVARCHAR(1000) SET @sql = 'BULK INSERT ' + @tableName + ' FROM ''' + @filename + ''' WITH (CODEPAGE=''ACP'', FIELDTERMINATOR=''|'')' EXEC (@sql) 对标准表的工作正常,但是现在我需要做相同的事情将数据加载到临时表中(例如,#MyTable).但是,当我尝试一下时,我会发现错误: Invalid Object Name: #MyTable 我认为问题是由于BULK INSERT语句是随机构建然后使用EXEC执行的事实,并且在#MyTable #MyTable的情况下无法在EXEC呼叫的上下文中访问.#MyTable./p> 我需要构造这样的语句的原因是我需要将文件名插入语句中,这似乎是这样做的唯一方法.因此,似乎我
2 2023-10-27
编程技术问答社区
当行依赖于外键值时,如何使用BULK INSERT?
我的问题与基于此,我已经考虑使用 BULK INSERT BULK INSERT .我现在知道,我必须为要保存到数据库中的每个实体准备一个文件.无论如何,我仍然想知道该批量插入是否会避免我的系统上的内存问题,如Serverfault上的引用问题. 至于街头桌子,这很简单!我只有两个城市和五个部门作为外国钥匙.但是,这些地址呢?地址表是这样结构化的: AddressId int not null identity(1,1) primary key StreetNumber int null NumberSuffix_Value int not null DEFAULT 0 StreetId int null references Streets (StreetId) CityId int not null references Cities (CityId) SectorId int null references Sectors (SectorId) 正如我在Server
0 2023-10-27
编程技术问答社区
使用BULK INSERT时忽略了某些列
我有一个带有结构 的逗号分隔文本文件 field1 field2 field3 field4 1 2 3 4 我写了以下脚本以插入文本文件,但我想删除第3列 create table test (field1 varchar(50),field2 varchar(50),field4 varchar(50)) go bulk insert test from 'c:\myFilePath' with (fieldterminator=',', rowterminator='\n' ) 插入物效果很好,但是插入的结果使field4看起来像 field3,field4,因此现场3实际上只是串联到field4上.我与之合作的平面文件是几个演出,无法轻松修改.有没有办法使用散装插入,但是否忽略了在创建表语句中未声明的列? 解决方案 您可以使用格式文件来执行此操作: ms178129.aspx MS179
0 2023-10-27
编程技术问答社区
SQL从CSV批量导入
我需要将大型CSV文件导入SQL Server.我正在使用: BULK INSERT CSVTest FROM 'c:\csvfile.txt' WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' ) GO 问题是我所有的字段都被引号包围(""),因此一排看起来像: "1","","2","","sometimes with comma , inside", "" 我可以以某种方式导入它们,并告诉SQL将引号用作字段定界符? 编辑:使用',""作为定界符的问题,如示例所示的是: 大多数示例的做法是,它们导入数据,包括第一列中的第一列和最后一列中的第一个,然后他们继续进行剥离. las我的第一列(也是最后一个)列是日期时间,不允许将" 20080902导入DateTime. 从我一直在阅
6 2023-10-27
编程技术问答社区