zoukankan      html  css  js  c++  java
  • 向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 没有架构,此时 就会忽略填充,

  • 相关阅读:
    在JavaScript的数组中进行数组元素查找和替换(JS的indexOf等)
    GNU/Linux Distribution Timeline v12.10
    makefile编写差异
    java快速排序1000万无序数组JVM-Xmx=256M 耗时2s
    Quartz cron表达式
    hdu
    action中实现对批量文件上传的封装
    MyGui笔记(1)建立第一个工程
    Jenkins参数化构建
    最完美的xslt数值函数与字符串函数(转)
  • 原文地址:https://www.cnblogs.com/linweimu/p/11123218.html
Copyright © 2011-2022 走看看