Python 调用C# dll,处理返回数据DataSet

7 篇文章 0 订阅

Python调用C#dll文件,引用包安装教程

结果显示

在这里插入图片描述

创建C# 类库

  1. 创建C# 类库,创建类 YC.DataSet_Demo.dll,类:DemoPlugIn.cs
  2. 创建返回空DataSet的方法
	public DataSet Retrun_Null()
	{
    	return null;
	}
  1. 创建非静态方法返回DataSet
	public DataSet Retrun_DataSet(int Num)
        {
            return GetDataset(Num);
        }
  1. 创建 静态方法 返回DataSet
	public static DataSet GetDataset(int Num)
        {
            var ds = new DataSet();
            var dt = GetTableSchema();
            for (int i = 1; i <= Num; i++)
            {
                DataRow dr = dt.NewRow();
                dr["Name"] = "张三" + i + "号";
                dr["Age"] = 18;
                dr["Say"] = "我是张三的第" + i + "个克隆体";
                dr["Add_Time"] = DateTime.Now;
                dt.Rows.Add(dr);
                Thread.Sleep(10);
            }
            ds.Tables.Add(dt);
            return ds;
        }

Python 调用代码

  • 引用dll文件,先把dll文件拷贝到根目录下
clr.AddReference("YC.DataSet_Demo")
from YC.DataSet_Demo import *

非空验证

	pulgin = DemoPlugIn()  # 实例化
    ds = pulgin.Retrun_Null()  # 非静态方法需要 实例化 才能访问
    if ds is None:  # 非空验证
        print('ds 是空集合')
    else:
        print(' ds 是非空集合')

静态方法调用

 	num = 10
    ds2 = DemoPlugIn.GetDataset(num)  # 静态方法  获取DataSet  可以直接访问,无需实例化
    if  ds2 is not None:
        list(map(lambda x: print_Model(x), ds2.Tables[0].Rows))  # 循环输出DataSet内的数据
        print(f' 静态方法,克隆成功 {ds1.Tables[0].Rows.Count} 个张三')  # 输出返回集合的数量

非静态方法调用,lambda 处理 dataset

	num = 10
    print(f' 我是张三,我要克隆 {num} 个自己')
    ds1 = pulgin.Retrun_DataSet(num)  # 非静态方法 获取DataSet   需要 实例化 才能访问,在非空验证中已经实例化了
    if ds1 is not None:
        list(map(lambda x: print_Model(x), ds1.Tables[0].Rows))  # 循环输出DataSet内的数据
        print(f' 非静态方法,克隆成功 {ds1.Tables[0].Rows.Count} 个张三')  # 输出返回集合的数量

  • lambda 循环调用方法输出内容
# 定义输出方法
def print_Model(row):
    print(f'Hi,我是 {row["Name"]},年龄 {row["Age"]},创建日期 {row["Add_Time"]},{row["Say"]}')
    time.sleep(0.1)

代码下载

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漫伊

感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值