You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# WPF中设置DataTable主键合并数据时类型转换错误如何解决?

错误原因

DataTable.PrimaryKey 属性类型为 DataColumn[](DataColumn数组),用于支持多列联合主键场景,你直接赋值单个DataColumn对象会触发类型不匹配错误。

修复方法

方案1:修改原有代码的错误行

只需要把主键赋值行修改为传入包含目标列的数组即可:

foreach (DataColumn item in Dt_Masterlist.Columns)
{
    if (item.ColumnName == Combo_Master_Primary.SelectedItem.ToString())
    {
        // 把单个DataColumn包装成数组再赋值
        Dt_Masterlist.PrimaryKey = new DataColumn[] { item };
        break; // 匹配到目标列后直接跳出循环,避免无效遍历
    }
}

方案2:简化逻辑(无需手动遍历列)

无需自行遍历所有列匹配列名,直接通过DataColumnCollection的索引器即可通过列名直接获取对应DataColumn,代码更简洁高效:

// 先加判空逻辑,避免未选择选项时空引用报错
if (Combo_Master_Primary.SelectedItem != null)
{
    string selectedCol = Combo_Master_Primary.SelectedItem.ToString();
    Dt_Masterlist.PrimaryKey = new DataColumn[] { Dt_Masterlist.Columns[selectedCol] };
    Dt_Masterlist.Merge(Dt_NewList);
}

内容的提问来源于stack exchange,提问作者Salt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 11:54:02