【问题标题】:How to find primary key column name in C# or dotnet using dataset?如何使用数据集在 C# 或 dotnet 中查找主键列名称?
【发布时间】:2021-08-11 11:31:13
【问题描述】:

我想从获取的数据集中查找主键列名,但是当我在调试模式下运行应用程序时,没有检索到主键。虽然在 asp.net 中有预定义的属性可以使用 datacolumn 获取主键。我写的代码附在下面。

        var dataSetUpdate = new DataSet();

        //Convert Xml string into Dataset/Datatable
        using (var stringReader = new StringReader(tableXml))
        {
            dataSetUpdate.ReadXml(stringReader, XmlReadMode.ReadSchema);
        }

        DataColumn[] PrimaryKeys;
        PrimaryKeys = dataSetUpdate.Tables[0].PrimaryKey;
        string PrimaryKeyColumnName;

        //PrimaryKeys.Length value is coming zero when I checked in debug mode

        for(int j=0;j<PrimaryKeys.Length;j++)   
        {
            PrimaryKeyColumnName = PrimaryKeys[j].ColumnName;
        }
        

我获取主键的方式是否正确?

【问题讨论】:

  • xml 文件是一个文本文件。发布文本以获得更多帮助。
  • @jdweng xml 字符串太大
  • 你能贴一张截图还是只贴一张表格?
  • 我不确定导入到数据表/数据集的 xml 文件是否会导致 PK 设置?

标签: c# sql asp.net .net asp.net-mvc


【解决方案1】:

看起来您正在将单个属性分配给数组对象PrimaryKeys = dataSetUpdate.Tables[0].PrimaryKey;

尝试将该行更改为primaryKeys = dataSetUpdate[0],这也是假设您的目标表确实位于索引0,否则您只需检查dataSetUpdate.Tables中的目标表是什么索引

PrimaryKeys = dataSetUpdate.Tables[0]; //primary key property removed here, first debug the dataSet.Tables object and see if there's data at all
    string PrimaryKeyColumnName;// consider camel casing primaryKeyColumn name


    for(int j=0;j<PrimaryKeys.Length;j++)   
    {
        PrimaryKeyColumnName = PrimaryKeys[j].PrimaryKey; //primary key moved here or you can stick with columnName
    }

【讨论】:

    猜你喜欢
    • 2010-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 2017-07-19
    • 2012-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多