由于使用自动增量添加到表中,如何使用更新的数据刷新 C# DataTable?

     2023-05-08     57

关键词:

【中文标题】由于使用自动增量添加到表中,如何使用更新的数据刷新 C# DataTable?【英文标题】:How to refresh a C# DataTable with updated data due to adding to table with autoincrement? 【发布时间】:2015-03-23 21:40:52 【问题描述】:

将数据推送到数据库后,如何用新更新的数据刷新数据表?

我有一个由数据表/sqlbulkcopy 组合填充的自动递增表。我需要在自动增量中生成的关键信息,而不是构建大量 SQL 语句来重新查询数据库,我相信必须有更好的方法来做到这一点。

解决方案必须非常快速。我正在处理需要及时处理的数十万条记录。

构建数据表

    public void SetupTable()
    
        m_Table = new DataTable("Table");
        m_Table.Columns.Add(new DataColumn("TagID", typeof(int)));
        m_Table.Columns.Add(new DataColumn("ResultID", typeof(int)));
        m_Table.Columns.Add(new DataColumn("TypeID", typeof(int)));
        m_Table.Columns.Add(new DataColumn("Name", typeof(string)));
        m_Table.Columns.Add(new DataColumn("bDel", typeof(int)));
        m_Table.Columns.Add(new DataColumn("Notes", typeof(string)));
        m_Table.Columns.Add(new DataColumn("Units", typeof(string)));
    

填充数据表

 m_Table.Rows.Add(m_Table.Rows.Count + 1, resultid, tagtypeid, SqlStr(tagname), (isDel ? "1" : "0"), "", "");

推送到数据库

    public bool AddProcessedTable()
    
        bool bSuccess = true;
        try
        
            if (sqlConn.State != ConnectionState.Open) sqlConn.Open();

            SqlBulkCopy SqlCmd = new SqlBulkCopy(sqlConn);
            SqlCmd.BulkCopyTimeout = 600;
            SqlCmd.DestinationTableName = "Table";
            SqlCmd.WriteToServer(m_Table);
        
        catch (Exception ex)
        
            bSuccess = false;
            plog.LogMsg(String.Format("General Exception during DestWarehouse.AddProcessedTable(): 0", ex.Message));
        
        return bSuccess;

    

刷新数据表

不确定在这里尝试什么。我正在研究使用 Linq 根据 DataTable 中的数据重建 SQL 语句。 我研究了从 DataTable 创建 DataTableReader,然后使用 Load 重新加载信息。但是,我在示例中没有看到任何连接信息,并且似乎不正确。

我很少在这里发帖,所以如果我需要更正这篇文章并添加更多细节,我绝对可以,但非常感谢任何帮助!谢谢。

【问题讨论】:

我认为你想要 OUTPUT 子句 [msdn.microsoft.com/en-us/library/ms177564.aspx],如 ***.com/questions/810962/getting-new-ids-after-insert 【参考方案1】:

为什么不向数据库抛出一个新的 SELECT,将结果存储在 DataReader 中,然后使用 Load,刷新 DataTable。

DataTable dt = //Your table
//Here a select to the database
DataReader dr = //Your select query
dt.Load(dr)

类似的东西。但是你知道,使用 using 语句来关闭数据读取器等...

【讨论】:

那是我最初的想法——我只是希望 .NET Framework 中的原生功能会比这更快。我正在考虑添加一个“SessionID”列,当我插入时,我会生成一个 GUID 并将其存储到列中。然后只需根据该 GUID 选择后退,然后在我完成数据库操作后删除该列。【参考方案2】:

或者只添加和id列,做好索引,然后存储最后一个id,根据最后使用的id选择id。

【讨论】:

如何使用自动增量更新字段 CONCAT?

】如何使用自动增量更新字段CONCAT?【英文标题】:HowtoupdateafieldCONCATwithautoincrement?【发布时间】:2019-07-2101:02:10【问题描述】:我有一个区域字段来检查我的表上存在的计数。如果计数为0,它将从01开始(例如SG01)。我目前正... 查看详情

我想将产品添加到表中,但是当我添加新产品时,它的数量和小计会使用 Javascript 刷新(默认为 1)

...添加到表中,但是当我添加新产品时,它的数量和小计会使用Javascript刷新(默认为1)【英文标题】:Iwanttoaddproductstotablebutwheniaddnewproudctitsquantityandsubtotalgetsrefreshed(bydefault1)usingJavascript【发布时间】:2022-01-2214:44:16【问题描述】... 查看详情

如何使用 php 或 javascript 在不刷新页面的情况下自动更新 JSON 数据?

】如何使用php或javascript在不刷新页面的情况下自动更新JSON数据?【英文标题】:HowtoautomaticallyupdateJSONdatawithoutpagerefreshusingphporjavascript?【发布时间】:2021-12-0707:39:11【问题描述】:我有一个谷歌表,其中股票数据每3分钟更新一... 查看详情

在 excel 中手动添加行,最后使用 C#.net 更新到表中

】在excel中手动添加行,最后使用C#.net更新到表中【英文标题】:AddrowmanuallyinexcelandfinallyupdateintotableusingC#.net【发布时间】:2020-02-0113:29:49【问题描述】:我正在开发一个应用程序,我将在其中单击Web表单上的按钮来更新时间条... 查看详情

如何在我的数据表 ajax 服务器端数据中添加下拉列表以使用数据表列显示到表中

】如何在我的数据表ajax服务器端数据中添加下拉列表以使用数据表列显示到表中【英文标题】:Howtoadddropdowninmydatatableajaxserversidedatainshowingtotableusingdatatablecolumns【发布时间】:2021-08-0217:15:52【问题描述】:我是数据表ajax服务器... 查看详情

如何使用 ASP.Net MVC 自动滚动到表中列出的 PropID?

】如何使用ASP.NetMVC自动滚动到表中列出的PropID?【英文标题】:HowtoautoscrolltoPropIDworkedlistedinTableusingASP.NetMVC?【发布时间】:2021-09-2718:39:56【问题描述】:如何将视图自动滚动到我在PropID上完成的特定PropID帖子?我正在使用ASP.Net... 查看详情

AJAX如何动态地将行添加到表中

...有人可以帮助我弄清楚如何在数据库查询找到更多记录时使用AJAX动态地将行添加到以下html中。我正在使用pythonflask和pandas创建一个包含节点信息的数据框,例如节点何时处于活动状态,或处于睡眠模式,锁定或解锁。我在想我... 查看详情

我需要使用表单将许多数据字段添加到表中

】我需要使用表单将许多数据字段添加到表中【英文标题】:Howtoaddmanyfieldsofdatatoatableusingaform【发布时间】:2021-12-2423:43:00【问题描述】:我正在尝试创建一个大约需要填写的表单。50个字段的数据以ms访问成一张表。该函数长... 查看详情

如何使用 phpmyadmin 向 mysql 数据库中的列添加自动增量?

】如何使用phpmyadmin向mysql数据库中的列添加自动增量?【英文标题】:Howtoaddauto-incrementtocolumninmysqldatabaseusingphpmyadmin?【发布时间】:2013-10-2610:04:53【问题描述】:我一直在尝试将自动增量添加到我的一个列(基本上是一个ID),... 查看详情

如何使用 jQuery 将行追加到表中?

】如何使用jQuery将行追加到表中?【英文标题】:HowdoyouappendrowstoatableusingjQuery?【发布时间】:2011-01-1018:42:27【问题描述】:您好,我正在尝试使用jQuery向表中添加一行,但它不起作用。可能是什么原因?而且,我可以为新添加... 查看详情

如何使用自动增量键和 SqlDataAdapter 添加新行做数据库

】如何使用自动增量键和SqlDataAdapter添加新行做数据库【英文标题】:HowtoworkwithautoincrementkeysandSqlDataAdapterstoaddnewrowsdodatabase【发布时间】:2014-08-0414:59:06【问题描述】:所以,我有这个我必须维护的内部数据访问框架,我要向它... 查看详情

使用ajax c#自动刷新带有更新数据的Gridview?

...用我的c#方法,然后获取更新的数据并绑定到gridview。但由于某种原因,gridview中的数据似乎 查看详情

csharp使用entityframework将数据添加到表中。(代码片段)

查看详情

使用实体框架自动编号

】使用实体框架自动编号【英文标题】:AutonumberwithEntityFramework【发布时间】:2011-03-0200:06:44【问题描述】:我想遍历一组对象并将它们全部添加到表中。目标表有一个自动增量字段。如果我添加一个对象没有问题。如果我添加... 查看详情

刷新关于数据库更新的网页

...我不太清楚如何实现它。我想知道如何才能提取新信息已添加到表中,以及如何让服务器将其推送到浏览器。【问题讨论】:您可能需要研究AJAX解决方案,因为Websocket无法在旧版浏览器 查看详情

如何在 MySQL 中使用自动增量字段复制行并插入到同一个表中?

】如何在MySQL中使用自动增量字段复制行并插入到同一个表中?【英文标题】:HowtocopyarowandinsertinsametablewithaautoincrementfieldinMySQL?【发布时间】:2012-02-2716:55:42【问题描述】:在MySQL中,我尝试使用autoincrementcolumnID=1复制一行并将... 查看详情

如何更新或更改 Mysql 中的自动增量列值

】如何更新或更改Mysql中的自动增量列值【英文标题】:HowtoupdateorchangeautoincrementcolumnvalueinMysql【发布时间】:2019-10-0103:30:43【问题描述】:我有一个表eav_attribute具有以下结构,我错误地从该表中删除了一条记录,其自动递增属... 查看详情

如何将自动增量 ID 列添加到从 SQL 查询生成的表中? [复制]

】如何将自动增量ID列添加到从SQL查询生成的表中?[复制]【英文标题】:HowdoIaddAuto-IncrementIDColumntoatablegeneratedfromSQLQuery?[duplicate]【发布时间】:2021-12-2706:42:01【问题描述】:我有一个从SQL查询本身生成的表。现在我需要在这个... 查看详情