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

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

  • Python调用C#dll文件,引用包安装教程
  • 结果显示
  • 创建C# 类库
  • Python 调用代码
    • 非空验证
    • 静态方法调用
    • 非静态方法调用,lambda 处理 dataset
  • 代码下载

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

结果显示

Python 调用C# dll,处理返回数据DataSet_第1张图片

创建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)

代码下载

你可能感兴趣的:(Python,C#,python,c#)