关键词:
【中文标题】从 DataTable C# 添加到 OLE 类型表【英文标题】:Adding to OLE type table from DataTable C# 【发布时间】:2017-01-30 18:28:37 【问题描述】:我正在尝试使用来自 DataTable 对象的集合 DataRows 将数据添加到 Access 表中,并在查看器中看到一组很好的数据 (43) 记录,但它填充了相同的记录 43 次。我的参数设置错误还是我做错了什么?
private void PopulateDB(DataTable dtDB)
lblDataStatus.Text = "populating master table...";
this.Refresh();
progressBar1.Visible = true;
progressBar1.Value = 1;
progressBar1.Maximum = dtDB.Rows.Count;
string strConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\path\fname.accdb";
using (OleDbConnection conn = new OleDbConnection (strConn ))
using (OleDbCommand cmd = new OleDbCommand())
foreach (DataRow dr in dtDB .Rows)
progressBar1.PerformStep();
try
cmd.CommandText = "INSERT INTO PMADocMaster( PN, PNNewRev, PN8Digit, ECO, Mon, SupNum, URL ) VALUES (?,?,?,?,?,?,?)";
cmd.Parameters.Add("@pn", OleDbType.VarChar).Value = dr.Field<string>("PNFullNum");
cmd.Parameters.Add("@rev", OleDbType.VarChar).Value = dr.Field<string>("PNNewRev");
cmd.Parameters.Add("@pn8", OleDbType.VarChar).Value = dr.Field<string>("PN8Dig");
cmd.Parameters.Add("@eco", OleDbType.VarChar).Value = dr.Field<string>("ECO");
cmd.Parameters.Add("@mon", OleDbType.VarChar).Value = dr.Field<string>("Mon");
cmd.Parameters.Add("@supnum", OleDbType.VarChar).Value = dr.Field<string>("SupNum");
cmd.Parameters.Add("@url", OleDbType.VarChar).Value = dr.Field<string>("URL");
cmd.Connection = conn;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
catch (Exception e)
MessageBox.Show("Error: " + e.Message);
lblDataStatus.Text = e.Message;
return;
// duplicates are happening, will check veracity of data afterwards
progressBar1.Visible = false;
【问题讨论】:
如果您使用 DataAdapter,它将为您完成所有更新。从 DataTable 中提取数据以发送到 DB 是相当奇怪的 【参考方案1】:您可以使用 cmd.Parameters.clear() 或优化您的代码,如下所示..
private void PopulateDB(DataTable dtDB)
lblDataStatus.Text = "populating master table...";
this.Refresh();
progressBar1.Visible = true;
progressBar1.Value = 1;
progressBar1.Maximum = dtDB.Rows.Count;
string strConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\path\fname.accdb";
using (OleDbConnection conn = new OleDbConnection(strConn))
using (OleDbCommand cmd = new OleDbCommand("INSERT INTO PMADocMaster( PN, PNNewRev, PN8Digit, ECO, Mon, SupNum, URL ) VALUES (?,?,?,?,?,?,?)",conn))
try
cmd.Parameters.Add("@pn");, OleDbType.VarChar);
cmd.Parameters.Add("@rev", OleDbType.VarChar);
cmd.Parameters.Add("@pn8", OleDbType.VarChar);
cmd.Parameters.Add("@eco", OleDbType.VarChar);
cmd.Parameters.Add("@mon", OleDbType.VarChar);
cmd.Parameters.Add("@supnum", OleDbType.VarChar);
cmd.Parameters.Add("@url", OleDbType.VarChar);
conn.Open();
foreach (DataRow dr in dtDB.Rows)
progressBar1.PerformStep();
cmd.Parameters["@pn"].Value = dr.Field<string>("PNFullNum");
cmd.Parameters["@rev"].Value = dr.Field<string>("PNNewRev");
cmd.Parameters["@pn8"].Value = dr.Field<string>("PN8Dig");
cmd.Parameters["@eco"].Value = dr.Field<string>("ECO");
cmd.Parameters["@mon"].Value = dr.Field<string>("Mon");
cmd.Parameters["@supnum"].Value = dr.Field<string>("SupNum");
cmd.Parameters["@url"].Value = dr.Field<string>("URL");
cmd.ExecuteNonQuery();
conn.Close();
catch (Exception e)
MessageBox.Show("Error: " + e.Message);
lblDataStatus.Text = e.Message;
return;
// duplicates are happening, will check veracity of data afterwards
progressBar1.Visible = false;
【讨论】:
在 c# 中可以添加到 DataTable 的行数是不是有限制?
】在c#中可以添加到DataTable的行数是不是有限制?【英文标题】:IstherealimittothenumberofrowsthatcanbeaddedtoaDataTableinc#?在c#中可以添加到DataTable的行数是否有限制?【发布时间】:2016-01-0118:57:10【问题描述】:我正在从excel文件中获取... 查看详情
c#怎么讲datatable导出到excel
用NOPI,其实Excel文件也是有一定格式的,office只是能对这种格式准确地进行读写。那么,NOPI也是能对Excel进行操作,不依赖于电脑是的Excel软件。它也定义了sheet,workbook,cell,row,column等对象,方便操作Excel对象,sheet表单,单元格,... 查看详情
在 C# 中将数据加载到 DataTable 会出现“未知 SQL 类型 - 0”错误
】在C#中将数据加载到DataTable会出现“未知SQL类型-0”错误【英文标题】:LoadingdatatoDataTableinC#gives"UnknownSQLtype-0"error【发布时间】:2018-11-2814:28:38【问题描述】:我已经成功地使用以下代码将数据从ODBC连接加载到C#DataTable... 查看详情
从 C# .NET 中的 DataTable 到 JSON
】从C#.NET中的DataTable到JSON【英文标题】:FromDataTableinC#.NETtoJSON【发布时间】:2011-01-1918:10:16【问题描述】:我是C#和.NET的新手,但我已经编写了这段代码来调用存储过程,然后我想获取返回的DataTable并将其转换为JSON。SqlConnection... 查看详情
c#从数据表中求和相同间隔、日期和类型的值
...型的值【英文标题】:c#Sumvaluesofsameintervalanddateandtypefromdatatable【发布时间】:2021-02-0301:44:30【问题描述】:输入我有一个DataTable,其结构如下(带有一些示例值):输出我想要一个像这样的DataTable来保存计算结果:变换逻辑我... 查看详情
C# 如何从存储在数据库中的 OLE 对象中保存图像
】C#如何从存储在数据库中的OLE对象中保存图像【英文标题】:C#HowtosaveimagefromanOLEObjectstoredinaDatabase【发布时间】:2011-07-1415:24:37【问题描述】:当它作为OLE对象嵌入到访问数据库中时,标题字节似乎与图像一起存储,并且它们... 查看详情
由于使用自动增量添加到表中,如何使用更新的数据刷新 C# DataTable?
...于使用自动增量添加到表中,如何使用更新的数据刷新C#DataTable?【英文标题】:HowtorefreshaC#DataTablewithupdateddataduetoaddingtotablewithautoincrement?【发布时间】:2015-03-2321:40:52【问题描述】:将数据推送到数据库后,如何用新更新的数... 查看详情
解决从excel导入数据库,导入到datatable时数据类型发生变化的问题(如数字类型变成科学计数法,百分数变成小数)
做项目的时候,C#读取Excel数据到DataTable或者DataSet,设断点查看DataTable,发现Excel的显示为较长位数数字的字段如0.000012在DataTable中显示为科学计数法1.2E-05,而百分数如143%在DataTable中显示为1.43。可是我想Excel中显示的是什么数据... 查看详情
c#如何从datatable中取出某列的值并去除这一列的相同值,并将这列添加到新的表中
...");dt.Rows.Add("小三3");DataViewdv=dt.DefaultView;//新表DataTabledtNew=newDataTable("new");//过滤相同值放入新表中本回答被提问者采纳 查看详情
Winforms C#:从远程计算机文件夹获取图像并加载到 DataTable 的列中
】WinformsC#:从远程计算机文件夹获取图像并加载到DataTable的列中【英文标题】:WinformsC#:GetimagefromremotecomputerfolderandloadintoDataTable\'scolumn【发布时间】:2017-12-2119:40:21【问题描述】:我有一台远程计算机,它在一个文件夹中存储... 查看详情
从 C# 如何调用需要 *VARIANT 参数的非托管 OLE 接口?
】从C#如何调用需要*VARIANT参数的非托管OLE接口?【英文标题】:FromC#howdoIcallanunmanagedOLEinterfacethatrequiresa*VARIANTparameter?【发布时间】:2017-01-0522:21:03【问题描述】:我试图从C#调用用C++编写的OLE接口。C++代码的.ODL文件的签名是:l... 查看详情
c#中datatable怎么添加列名
DataTablemyDt=dt;//删除列myDt.Columns.Remove("minArea");myDt.Columns.Remove("maxArea");//调整列顺序,列排序从0开始myDt.Columns["num"].SetOrdinal(1);//修改列标题名称,根据列数更改列名dt.Columns[0].ColumnName参考技术ADataTabledt=newDataT... 查看详情
跳过第一个单元格和最后一个单元格 - 使用 Open XML 从 Excel 到 C# 中的 DataTable
...第一个单元格和最后一个单元格-使用OpenXML从Excel到C#中的DataTable【英文标题】:Skipfirstcell&lastcell-FromExceltoDataTableinC#withOpenXML【发布时间】:2016-11-2418:41:54【问题描述】:我已经实现了这里提到的代码:FromExceltoDataTableinC#withOpe... 查看详情
如何从文本框中获取数据并将其添加到 dataTable?
】如何从文本框中获取数据并将其添加到dataTable?【英文标题】:HowgetDatafromatextboxandaddittodataTable?【发布时间】:2016-08-2714:54:04【问题描述】:我正在尝试从文本中获取信息,例如:“姓名、号码等”;并将该信息添加到我的数... 查看详情
将 DataTable 从一个 DataSet 复制到另一个
】将DataTable从一个DataSet复制到另一个【英文标题】:CopyDataTablefromoneDataSettoanother【发布时间】:2011-06-2106:58:36【问题描述】:我正在尝试向新数据集X添加一个位于不同数据集Y内的数据表。如果我直接添加它,我会收到以下错误... 查看详情
SQL/C#:DataTable 到存储过程(从用户定义的表类型插入)- 转换错误
】SQL/C#:DataTable到存储过程(从用户定义的表类型插入)-转换错误【英文标题】:SQL/C#:DataTabletostoredprocedure(INSERTfromuser-definedtabletype)-Convertingerror【发布时间】:2021-11-1020:45:56【问题描述】:我正在尝试将我的DataTable传递给存储... 查看详情
从 javascript 将迷你图饼图添加到 Jquery DataTable
】从javascript将迷你图饼图添加到JqueryDataTable【英文标题】:AddsparklinespiecharttoJqueryDataTablefromjavascript【发布时间】:2021-08-1909:40:21【问题描述】:我正在尝试使sparklines饼图在JQueryDatatables中动态呈现。我可以像这样将JQuerysparklines... 查看详情
将样式单元格从数据库添加到 DataTable
】将样式单元格从数据库添加到DataTable【英文标题】:AddstylecelltoDataTablefromdatabase【发布时间】:2021-09-2013:00:08【问题描述】:我正在尝试根据通话状态为我的单元格添加样式。一个呼叫可以具有以下状态之一:新待定已取消确... 查看详情