Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法将CSV中的数据插入SQL表_Sql_Vb.net - Fatal编程技术网

无法将CSV中的数据插入SQL表

无法将CSV中的数据插入SQL表,sql,vb.net,Sql,Vb.net,我有以下代码将数据从CSV文件导入sql表。当我运行代码时,不会显示任何错误。但是,SQL表中没有插入任何内容 Dim folder=C:\Users\Administrator\Desktop\SKEDULERING\Data\ Dim CnStr=Provider=Microsoft.Jet.OLEDB.4.0;数据源=&文件夹&;扩展属性=文本;HDR=否;FMT=分隔; Dim dt作为新数据表 使用Adp作为新的OLEDB数据适配器从[labanal2.csv]中选择*CnStr Ad

我有以下代码将数据从CSV文件导入sql表。当我运行代码时,不会显示任何错误。但是,SQL表中没有插入任何内容

Dim folder=C:\Users\Administrator\Desktop\SKEDULERING\Data\ Dim CnStr=Provider=Microsoft.Jet.OLEDB.4.0;数据源=&文件夹&;扩展属性=文本;HDR=否;FMT=分隔; Dim dt作为新数据表 使用Adp作为新的OLEDB数据适配器从[labanal2.csv]中选择*CnStr Adp.Filldt 终端使用 Dim strsql As String=插入到以下内容中:PLAASNO、PLAASNAAM、BLOKNO、AREA、NAME3、KULTIVAR、WINGKLAS、analisedatam、SUIKER、pH、SUUR值@PLAASNO、@PLAASNAAM、@BLOKNO、@AREA、@NAME3、@KULTIVAR、@WINGKLAS、@analisedatam、@suker、@pH、@SUUR Dim SqlconnectionString作为字符串=数据源=GIDEON-E-LAPTOP\SQLEXPRESS2014;初始目录=skeduleringdatabase;集成安全性=真 将连接用作新的SqlClient.SqlConnectionSqlconnectionString Dim cmd作为新的SqlClient.SqlCommandstrsql,连接 使用cmd.Parameters .Add@PLAASNO,SqlDbType.VarChar,50,PLAASNO .Add@PLAASNAAM,SqlDbType.VarChar,50,PLAASNAAM .Add@BLOKNO,SqlDbType.VarChar,50,BLOKNO .Add@AREA,SqlDbType.VarChar,50,区域 .Add@ANALISEDATUM,SqlDbType.Date,50,analisedatam .Add@NAME3,SqlDbType.VarChar,50,NAME3 .Add@KULTIVAR,SqlDbType.VarChar,50,KULTIVAR .Add@WINGKLAS,SqlDbType.VarChar,50,WINGKLAS .Add@SUIKER,SqlDbType.Decimal,50,SUIKER .Add@pH,SqlDbType.Decimal,50,pH .Add@SUUR,SqlDbType.Decimal,50,SUUR 以 Dim适配器作为新的SqlClient.SqlDataAdapter adapter.InsertCommand=cmd Dim IROWS作为Int32=adapter.Updatedt插入 MsgBoxKlaar OLEB 终端使用
我遗漏了什么?

问题是由于数据表中的每一行都有RowState=DataRowState.Unchanged。这意味着在调用Update时,每一行都被忽略

这是Update方法所期望的正常行为,Insert、Update或Delete命令只考虑处于“已添加”、“已更改”或“已删除”状态的行

您可以在调用update之前添加此循环

对于dt.行中作为DataRow的每一行 添加了row.SetAdded 下一个 或者,如下文所述,更改Fill方法的行为,将属性AcceptChangesDuringFill设置为False

使用Adp作为新的OLEDB数据适配器从[labanal2.csv]中选择*CnStr Adp.AcceptChangesDuringFill=False Adp.Filldt 终端使用
这将使RowState属性的DataRowState.Added标志处于活动状态。

您使用的是什么数据库?SQL只是查询语言,而不是数据库产品…使用ExecuteOnQueryYou可以告诉DataAdapter在加载时不要接受更改。加载数据表之前:myDA.AcceptChangesDuringFill=false谢谢Steve和Proputoix。