• 向dataTable中添加数据时附带主键信息


    最近在做项目的时候遇到一个问题,需要将原有的数据取出后装进dataTable中,但在操作dataTable中发现又需要数据的主键信息,利于dataTable的PrimaryKey属性根本就拿不到主键值。最后通过查阅资料发现,当要把数据拿出来的时候需要设置拿出数据附带主键属性(不知道这么说跟时间原理是不是有偏差),具体步骤记录如下,以备后续参考:

     using (SqlConnection conn = new SqlConnection(CAppCfg.cnStrs))
                                {
                                    conn.Open();
                                    using (SqlCommand command = conn.CreateCommand())
                                    {
    
                                            try
                                            {
                                                command.CommandText = sqlstrs;
                                                using (SqlDataAdapter adp = new SqlDataAdapter(command))
                                                {
                                                    adp.MissingSchemaAction = MissingSchemaAction.AddWithKey;
                                                    adp.Fill(dt_upload);
                                                }
                                            }
                                            catch (Exception er)
                                            {
                                                throw new Exception(er.Message);
                                            }
                                     
                                    }
                                }

    这样再利用dataTable的PrimaryKey属性就能拿到此数据信息中的主键信息了。

    查阅剩余功能:MissingSchemaAction 

    Add:在填充数据集的时候直接累加过来,没有指定主键关系(默认值)

    AddWithKey:从数据源中我们可以得到哪一个键是主键,然后根据主键进行填充,不会出现主键重复的情况,一般选择这种方式,当然这种方式有主键的检查。对于非类型化数据集格外重要

    Error:如果选择这个选项,当填充UnTyped DataSet的时候,由于UnTypedDataSet没有数据结构,此时会报错

              抛出一个InvalidOperationException:  Missing the 'Table' DataTable for the 'Table' SourceTable.

    Ignore:忽略,也就是架构不存在的情况下,数据填充会被忽略掉。由于Untyped DataSet 没有架构,此时 就会忽略填充,

  • 相关阅读:
    【Qt开发】Win7 64位qt-windows-x86-msvc2015-5.6.0 DLL依赖库打包
    【CUDA】CUDA框架介绍
    【CUDA】CUDA框架介绍
    【CUDA开发】CUDA从入门到精通
    【CUDA开发】CUDA从入门到精通
    【CUDA开发】CUDA的安装、Nvidia显卡型号及测试
    【CUDA开发】CUDA的安装、Nvidia显卡型号及测试
    【Qt开发】Qt控件之进度条
    【Qt开发】Qt控件之进度条
    【Qt开发】布局控件之间的间距设置
  • 原文地址:https://www.cnblogs.com/linweimu/p/11123218.html
Copyright © 2020-2023  润新知