C#使用epplus.dll读取excel数据

图片说明
写了一个方法去读取excel2017表格数据,为什么m_ReadDatumList.Add()会报System.NullReferenceException这个异常?求大神解答
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CNData
{
public class Datum
{
public Datum()
{
}

     public string S_No { set; get; }        
    public string Des { set; get; }
    public double F_Norm { set; get; }
    public double F_USL { set; get; }
    public double F_LSL { set; get; }

}
}
using OfficeOpenXml;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Net.Mime.MediaTypeNames;

namespace CNData
{
public class Program
{
private static List m_ReadDatumList = new List(100);

    private static void Main(string[] args)
    {
        FileInfo existingFile = new FileInfo("D:test.xlsx");

        try
        {
            ExcelPackage package = new ExcelPackage(existingFile);
            ExcelWorksheet worksheet = package.Workbook.Worksheets[1];//选定第一页

            int maxColumnNum = worksheet.Dimension.End.Column;//最大列
            int minColumnNum = worksheet.Dimension.Start.Column;//最小列
            int maxRowNum = worksheet.Dimension.End.Row;//最大行
            int minRowNum = worksheet.Dimension.Start.Row;//最小行
            string strno = "C";

            string strdes = "D";
            string strfnorm = "E";                
            string strfusl = "F";
            string strflsl = "F";
                            for (int nRowIndex = 6; nRowIndex <= maxRowNum; nRowIndex++)
            {
                //object objMark = worksheet.Cells[strno + nRowIndex.ToString()].Value;
                //if (objMark == null)
                //    continue;
                int m = 2 * nRowIndex - 6; 
                int n = m + 1;
                object objno = worksheet.Cells[strno + m.ToString()].Value;
                object objdes = worksheet.Cells[strdes + m.ToString()].Value;
                object objf_Norm = worksheet.Cells[strfnorm + m.ToString()].Value;
                object objf_USL = worksheet.Cells[strfusl + m.ToString()].Value;
                object objf_LSL = worksheet.Cells[strflsl + n.ToString()].Value;                                        m_ReadDatumList.Add(SetModel(objno, objdes, objf_Norm, objf_USL, objf_LSL));

                //int C1 = m_ReadDatumList.Count;
                //Console.WriteLine(C1);
                //Console.ReadKey();
            }
                         }
        catch (Exception ex)
        {
            throw ex;
        }
    }

            private static Datum SetModel(object objno, object objdes, object objf_Norm, object objf_USL, object objf_LSL)
    {
        Datum mdlDatum = new Datum();

        mdlDatum.S_No = objno.ToString().Trim();
        mdlDatum.Des = objdes.ToString().Trim();
        mdlDatum.F_Norm = double.Parse(objf_Norm.ToString());
        mdlDatum.F_USL = double.Parse(objf_USL.ToString());
        mdlDatum.F_LSL = double.Parse(objf_LSL.ToString());
                    return mdlDatum;
    }
}

}

1个回答

worksheet.Cells那几行调试下,是不是有单元格不存在
SetModel里面也调试下,传入的这几个参数中有一个是null或者不能转换为需要的格式

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 Sheets[下标]
2 年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复Tan078: Sheets]
2 年多之前 回复
Tan078
Tan078 追问一个问题,如果一个excel里有多个同样的sheet数据,循环判断该怎么写呢?
2 年多之前 回复
Tan078
Tan078 感谢大神提示,在m_ReadDatumList.Add()前追加判断,如果参数为空就跳出循环,不往里面添加,就可以测试成功了。
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C# KERNELBASE.dll报错看内容
C#写的应用程序,在本机正常,32位,但是在一个64位的电脑上没有办法运行,后来我在另一个64位上运行也是好的;我已知道是哪个dll有问题了,((System.ComponentModel.ISupportInitialize)(this.A)).EndInit();时出的错。A为A.dll,但是为什么其他2台是可以运行而只有那个不可以。还有在事件查看器windows日志中却看到是KERNELBASE.dll报错 :错误应用程序名称:A.exe,版本: 1.1.0.4,时间戳: 0x5666781c 错误模块名称: KERNELBASE.dll,版本: 6.1.7601.19018,时间戳: 0x5609fed4 异常代码: 0xe0434352 错误偏移量: 0x0000c42但是这台电脑上另一个也调用KERNELBASE.dll的应用程序又是能正常运行的,什么设置用户管理员权限啊什么助手恢复是没有什么用的,请问怎么解决?
C#编写sms.dll二次开发程序
# 使用VS2013 C#,利用sms.dll做二次开发,写的是consoleapplication程序,用了其中的Sms_connection() 、Sms_send()、和Sms_disconnection()函数。程序编译通过运行也ok,可以发送短信,但是我第二次运行程序的时候就连接不上设备了。只能把usb——232线拔掉重插就OK了。不知道什么原因好蛋疼。。。总不能用一次就插拔一次吧。。。。请大神赐教
C#使用user.dll调用多个摄像头,无法指定摄像头名称
最近在做一个工具,需要调用同一个电脑上的两个摄像头去录像,使用的是avicap32.dll和User32.dll进行录像,每次启动摄像头都会弹出Video Source画面,让手动选择摄像头,我想在配置文件中设置让使用哪个摄像头,请问如何来做。 AForge.net无法录制声音,故而舍弃。多谢各位
c# Tamir.SharpSsh连接sftp 使用方法Connect()
c#使用Tamir.SharpSSH.dll上传文件到sftp,平常都能正常运行,偶尔会出现调用 Connect()方法的时候停掉,不抛出任何的异常,一直停在这里。这样导致我的线程 也一直停在这里。然后把程序重新启动后又可以正常连接了。哪位遇到过这种现象?
C# 调用setupapi.dll里的方法出错
写的程序中调用了,如下代码 [DllImport("setupapi.dll", SetLastError = true)] public static extern bool SetupDiEnumDeviceInfo(IntPtr lpInfoSet, UInt32 dwIndex, SP_DEVINFO_DATA devInfoData); 可是不知为什么,这段代码在我的笔记本上测试有问题,产生不了正常结果。我的笔记本是WIN7系统,但是到了XP系统上却运行的很正确。后来又到其它win7电脑上运行,依旧不正确,请问这是为什么?怎么把它改成通用的 ?或者改成win7可用也行。
C#调用AxInterop.WMPLib.dll播放mts格式视频出错
C#程序调用AxInterop.WMPLib.dll播放mts格式视频,在华硕笔记本运行正常, 在苹果电脑的win7系统打开视频出错。 根据提示信息,在c盘appdata/local/temp里面得到3个文件,信息如下: ![图片说明](https://img-ask.csdn.net/upload/201609/24/1474726471_754468.png) 请教各位,有没有碰到过这种问题
关于c#使用自己的dll的问题
我自己编译的a.dll中调用了其他的b.dll, c#中使用a.dll时候需要把b.dll也import进去吗? 所有的dll都需要放进c#工程下面吗?
C# USER32.DLL切换窗口,如何获得当前窗口的title.
我使用USER32.DLL模拟键盘Alt+Tab切换窗口,如何知道切换到那个窗口,或者如何获得当前窗口的title.谢谢!
c#开发的.net组件,可否在c++builder下使用
c#开发的.net组件,即自定义控件dll,可否用在c++builder开发环境中
谁会帮看下我的案例 C#调用EasyHook.dll失败
源码:http://pan.baidu.com/s/1gdOeafL 几行代码,可以就是失败。 谁能帮修改下
C#引用shell32.dll,怎么去设置文件的属性。如设置文件只读 。
C#引用shell32.dll,怎么去设置文件的属性。如设置文件只读 。
C#网络编程使用SharpPcap.dll来抓取网络上的TCP数据包,怎么才能完整的还原抓取的数据?
如题,C#网络编sd程使用SharpPcap.dll来抓取网络上的TCP数据包,怎么才能完整的还原抓取的数据?我是要抓取特定的两台机器之间的数据传递,已知传递的数据包的组成规则,有这么几个问题: 1、怎么才能完整的获取所有的数据包? 2、获取的数据包需不需要考虑TCP数据包的重传或者错误传递的数据包? 谢谢。
C# 连接使用 MySql.Data.DLL 连接数据库 连接超时
本人在大陆运行程序没有任何问题。 但是把程序在香港运行,前半个小时可以正常读写数据库,后面就会报一个连接超时。 图如下: ![图片说明](https://img-ask.csdn.net/upload/201811/21/1542793091_498298.jpg) 报错信息如下 MySql.Data.MySqlClient.MySqlException: 'Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.' System.TimeoutException: '無法從傳輸連接讀取資料: 連線嘗試失敗,因為連線對象有一段時間並未正確回應,或是連線建立失敗,因為連線的主機無法回應。。' 由于是做量化交易的 所以每秒钟都得读数据,所以读取数据量比较大 我数据库连接对象 和 执行查询的对象 都有关闭。也尝试过 设置超时时间 ,但都未能解决次问题。 有大神能帮忙分析分析是什么原因吗?
c++引用c# dll,在C++头文件中引用,c# dll和c# namespace,总是提示找不到c# namespace
1.c++是clr工程 2.自定义一个c++ class AAA,在头文件中#using引用c# dll,然后using namespace c#命名空间 3.在c++工程中定义了一个class AAA的全局变量 4.编译的时候提示找不到c#的命名空间 求大神解释
沒有excel的電腦中可用microsoft.office.interop.excel.dll嗎?
小弟使用c#編寫的程序,其中引用了microsoft.office.interop.excel.dll ,將datagridview中的內容保存成.xlsx,之後又讀取該文件在datagridview中顯示; 現在得知用戶電腦上並沒有安裝office,請問microsoft.office.interop.excel.dll 還能使用嗎?? 或者有其他好的方法,也是可是。 客戶電腦不能安裝盜版軟件,正版又沒必要。
c# 如何调用AdbWinApi.dll 中的API
在google中搜索AdbWinApi.dll api 也找不到。希望高手帮忙
C# WinForm DevComponents.DotNetBar2 别的电脑上运行报错
问题描述: C# WinForm程序用了第三方的控件DevComponents.DotNetBar2.dll,所用的DotNetBar2是破解的安装版。应用程序是Visual studio 2010上开发的,开发时本机能正常使用, 但是编译完成后,发到其他电脑上运行报错,错误截图如下: ![图片说明](https://img-ask.csdn.net/upload/201711/23/1511412943_971726.png) 点开【详细信息】如下: 有关调用实时(JIT)调试而不是此对话框的详细信息, 请参见此消息的结尾。 ************** 异常文本 ************** System.Runtime.InteropServices.COMException (0x80040154): 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG)) 在 System.Windows.Forms.UnsafeNativeMethods.CoCreateInstance(Guid& clsid, Object punkOuter, Int32 context, Guid& iid) 在 System.Windows.Forms.AxHost.CreateWithLicense(String license, Guid clsid) 在 System.Windows.Forms.AxHost.CreateInstanceCore(Guid clsid) 在 System.Windows.Forms.AxHost.CreateInstance() 在 System.Windows.Forms.AxHost.GetOcxCreate() 在 System.Windows.Forms.AxHost.TransitionUpTo(Int32 state) 在 System.Windows.Forms.AxHost.CreateHandle() 在 System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) 在 System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) 在 System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) 在 System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) 在 System.Windows.Forms.Control.CreateControl() 在 System.Windows.Forms.Control.OnVisibleChanged(EventArgs e) 在 System.Windows.Forms.ScrollableControl.OnVisibleChanged(EventArgs e) 在 System.Windows.Forms.Control.SetVisibleCore(Boolean value) 在 DevComponents.DotNetBar.Metro.MetroTabPanel.set_Visible(Boolean value) 在 DevComponents.DotNetBar.Metro.MetroTabItem.?() 在 DevComponents.DotNetBar.Metro.MetroTabItem.set_Panel(MetroTabPanel value) 在 Courseware.MainForm.InitializeComponent() 位置 D:\workspace_vs2010\CoursewareNetImage\Courseware\MainForm.designer.cs:行号 391 在 Courseware.MainForm..ctor(LoginForm loginForm) 位置 D:\workspace_vs2010\CoursewareNetImage\Courseware\MainForm.cs:行号 35 在 Courseware.LoginForm.button1_Click(Object sender, EventArgs e) 位置 D:\workspace_vs2010\CoursewareNetImage\Courseware\LoginForm.cs:行号 513 在 System.Windows.Forms.Control.OnClick(EventArgs e) 在 System.Windows.Forms.Button.OnClick(EventArgs e) 在 System.Windows.Forms.Button.WndProc(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) ************** 已加载的程序集 ************** mscorlib 程序集版本: 4.0.0.0 Win32 版本: 4.0.30319.1 (RTMRel.030319-0100) 基本代码: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll ---------------------------------------- Courseware 程序集版本: 1.0.0.0 Win32 版本: 1.0.0.0 基本代码: file:///E:/系统网络版无OFFICE新版/Courseware.exe ---------------------------------------- System.Windows.Forms 程序集版本: 4.0.0.0 Win32 版本: 4.0.30319.1 built by: RTMRel 基本代码: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll ---------------------------------------- System.Drawing 程序集版本: 4.0.0.0 Win32 版本: 4.0.30319.1 built by: RTMRel 基本代码: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll ---------------------------------------- System 程序集版本: 4.0.0.0 Win32 版本: 4.0.30319.1 built by: RTMRel 基本代码: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll ---------------------------------------- log4net 程序集版本: 1.2.11.0 Win32 版本: 1.2.11.0 基本代码: file:///E:/系统网络版无OFFICE新版/log4net.DLL ---------------------------------------- System.Core 程序集版本: 4.0.0.0 Win32 版本: 4.0.30319.1 built by: RTMRel 基本代码: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll ---------------------------------------- System.Data.SQLite 程序集版本: 1.0.99.0 Win32 版本: 1.0.99.0 基本代码: file:///E:/系统网络版无OFFICE新版/System.Data.SQLite.DLL ---------------------------------------- System.Data 程序集版本: 4.0.0.0 Win32 版本: 4.0.30319.1 (RTMRel.030319-0100) 基本代码: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll ---------------------------------------- System.Xml 程序集版本: 4.0.0.0 Win32 版本: 4.0.30319.1 built by: RTMRel 基本代码: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll ---------------------------------------- System.Transactions 程序集版本: 4.0.0.0 Win32 版本: 4.0.30319.1 (RTMRel.030319-0100) 基本代码: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Transactions/v4.0_4.0.0.0__b77a5c561934e089/System.Transactions.dll ---------------------------------------- DevComponents.DotNetBar2 程序集版本: 12.2.0.7 Win32 版本: 12.2.0.7 基本代码: file:///E:/系统网络版无OFFICE新版/DevComponents.DotNetBar2.DLL ---------------------------------------- System.Configuration 程序集版本: 4.0.0.0 Win32 版本: 4.0.30319.1 (RTMRel.030319-0100) 基本代码: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll ---------------------------------------- System.EnterpriseServices 程序集版本: 4.0.0.0 Win32 版本: 4.0.30319.1 (RTMRel.030319-0100) 基本代码: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.EnterpriseServices/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll ---------------------------------------- System.Numerics 程序集版本: 4.0.0.0 Win32 版本: 4.0.30319.1 built by: RTMRel 基本代码: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll ---------------------------------------- AxInterop.APlayer3Lib 程序集版本: 1.0.0.0 Win32 版本: 1.0.0.0 基本代码: file:///E:/系统网络版无OFFICE新版/AxInterop.APlayer3Lib.DLL ---------------------------------------- mscorlib.resources 程序集版本: 4.0.0.0 Win32 版本: 4.0.30319.1 (RTMRel.030319-0100) 基本代码: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_zh-Hans_b77a5c561934e089/mscorlib.resources.dll ---------------------------------------- System.Windows.Forms.resources 程序集版本: 4.0.0.0 Win32 版本: 4.0.30319.1 built by: RTMRel 基本代码: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_zh-Hans_b77a5c561934e089/System.Windows.Forms.resources.dll ---------------------------------------- Accessibility 程序集版本: 4.0.0.0 Win32 版本: 4.0.30319.1 built by: RTMRel 基本代码: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll ---------------------------------------- ************** JIT 调试 ************** 要启用实时(JIT)调试, 该应用程序或计算机的 .config 文件(machine.config)的 system.windows.forms 节中必须设置 jitDebugging 值。 编译应用程序时还必须启用 调试。 例如: <configuration> <system.windows.forms jitDebugging="true" /> </configuration> 启用 JIT 调试后,任何未经处理的异常 都将被发送到在此计算机上注册的 JIT 调试器, 而不是由此对话框处理。 我经过分析,发现DevComponents.DotNetBar2.dll在开发电脑上已经写入了注册表,应该是注册到了全局程序集GAC,如下图: ![图片说明](https://img-ask.csdn.net/upload/201711/23/1511413357_66205.png) 通过查找应用程序中代码{DevComponents.DotNetBar.Metro.MetroShell metroShell1;}的类的定义,也应验了实际上我的程序里使用的DevComponents.DotNetBar的类都是来自于GAC,如下图所示: ![图片说明](https://img-ask.csdn.net/upload/201711/23/1511413429_346565.png) 我现在的疑问是:C#项目根目录下已经存放了一个DevComponents.DotNetBar2.dll文件,并且已添加了此dll文件的引用(见下图),为什么程序最终使用的DevComponents.DotNetBar2.dll却是来自GAC而不是项目引入的dll,如何在C#项目中改变dll的程序集指向,不要用GAC的程序集?(因为使用这个应用程序的电脑不可能安装GAC全局程序集) ![图片说明](https://img-ask.csdn.net/upload/201711/23/1511414544_396136.png) P.S. 网上查了各种资料,有的说是使用.net framework 4.0及项目的setup属性改成x86,这些设置我都已查验过,开发电脑上设置都是对的,非开发用的电脑上也确认安装的是.net framework 4.0。
c#调联迪MisPos.dll的问题
之前没用过C#,目前也是边学边开发,网上关于联迪读卡器、Pos的资料少之又少,研究了好几天还是没有调通,希望有调过联迪dll的大神指点一下! 1、dll函数说明: int __stdcall BankTrans(char * InputData, char* OutPutData) ``` 输入参数InputData: typedef struct { char trans[2]; /*交易类型:( '10'-获取卡号 '00'-签到 '01'-消费 '02'-消费撤销 '03'- 隔日退货 '04'-查询 '05-重打印 '06-结算 '07'-批量退货 )*/ char CardType[2]; /*卡类型*/ char amount[12]; /* 金额(12字节,无小数点,左补0,单位:分)*/ char card_no[20]; /*卡号 (20字节,左对齐,不足部分补空格)*/ char old_reference[12]; /*原交易参考号*/ char old_trace[6]; /*原交易流水号*/ char UserNO[15]; /*原交易商户号*/ char TerNO[15]; /*原交易终端号*/ char Date[8]; /*原交易日期yyyymmdd*/ char VerifyInfo[300]; // 认证数据 } InputData; 输出 OutPutData,结构体如下 typedef struct { char resp_code[2];/*0~1位 返回码 ( 2字节, "00"成功)*/ char card_no[20];/*卡号 (20字节,左对齐,不足部分补空格)*/ char amount[12];/* 金额(12字节,无小数点,左补0,单位:分)*/ char reference[12]; /*交易参考号*/ char trace[6]; /*流水号 (6字节,左对齐)*/ char UserNO[15]; /*商户号*/ char TerNO[15]; /*终端号*/ char CardType[2]; /*卡类型*/ char expr[4];/*有效期 (4字节) */ char BatchNo[10];/*批次号*/ char Date[8]; /*交易日期yyyymmdd*/ char Time[6]; /*交易时间hhmmss*/ char CardName[20]; /*发卡行中文名*/ char old_amount[12];/* 原交易金额(12字节,无小数点,左补0,单位:分)*/ char old_reference[12]; /*原交易参考号 */ char old_trace[6]; /*原交易流水号*/ char old_UserNO[15]; /*原交易商户号*/ char old_TerNO[15]; /*原交易终端号*/ char old_Date[8]; /*原交易日期yyyymmdd*/ char resp_chin[100];/*86~185位 错误说明(40字节,左对齐,不足部分补空格)*/ } OutPutData; ``` ![图片说明](https://img-ask.csdn.net/upload/201906/15/1560567452_188967.png) 2、我在c#里引用dll方法里是这么定义的 ``` [DllImport("MisPos.dll", CallingConvention = CallingConvention.StdCall)] public static extern int BankTrans(INPUT_MIS request, StringBuilder response); [StructLayout(LayoutKind.Sequential)] public struct INPUT_MIS { /*交易类型:('10'-获取卡号 '00'-签到 '01'-消费 '02'-消费撤销 '03'- 隔日退货 '04'-查询 '05-重打印 '06-结算 '07'-批量退货 )*/ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 2)] public string trans; } [StructLayout(LayoutKind.Sequential)] public struct OUTPUT_MIS { /*0~1位 返回码 ( 2字节, "00"成功)*/ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 2)] //这里的2就是数组长度 public string resp_code; /*卡号 (20字节,左对齐,不足部分补空格)*/ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)] public string card_no; /*卡类型*/ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 2)] public string CardType; /*错误说明*/ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 100)] public string resp_chin; } ``` 输入输出类型定义为 结构体、StringBuilder还是 IntPtr ?? 我都试了一遍 3、具体调用: ``` INPUT_MIS input = new INPUT_MIS(); StringBuilder output = new StringBuilder(2000); input.trans = "10"; //调用 int result = LDE820D.LDE820D.BankTrans(input, output); MessageBox.Show("result:" + result + "----" + output); ``` 4、返回结果为: ![图片说明](https://img-ask.csdn.net/upload/201906/15/1560567800_996204.png) 5、联迪设备是串口设备,测试demo需要根据自己电脑设备管理器修改串口号,这种设备是可以直接调dll还是通过打开串口那种模式开发。 像神思的设备直接调dll就可以驱动读卡器读卡,扫码墩切成串口模式就需要通过打开串口来接收数据,联迪的这种应该怎么弄呢????
C#怎么动态调取dll文件
将dll文件的路径存储在数据库中(SqlServer) 然后c#程序通过读取数据库中的内容 调用dll文件 求解决!!
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
花了20分钟,给女朋友们写了一个web版群聊程序
参考博客 [1]https://www.byteslounge.com/tutorials/java-ee-html5-websocket-example
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
这30个CSS选择器,你必须熟记(上)
关注前端达人,与你共同进步CSS的魅力就是让我们前端工程师像设计师一样进行网页的设计,我们能轻而易举的改变颜色、布局、制作出漂亮的影音效果等等,我们只需要改几行代码,不需...
国产开源API网关项目进入Apache孵化器:APISIX
点击蓝色“程序猿DD”关注我回复“资源”获取独家整理的学习资料!近日,又有一个开源项目加入了这个Java开源界大名鼎鼎的Apache基金会,开始进行孵化器。项目名称:AP...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
编写Spring MVC控制器的14个技巧
本期目录 1.使用@Controller构造型 2.实现控制器接口 3.扩展AbstractController类 4.为处理程序方法指定URL映射 5.为处理程序方法指定HTTP请求方法 6.将请求参数映射到处理程序方法 7.返回模型和视图 8.将对象放入模型 9.处理程序方法中的重定向 10.处理表格提交和表格验证 11.处理文件上传 12.在控制器中自动装配业务类 ...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
求小姐姐抠图竟遭白眼?痛定思痛,我决定用 Python 自力更生!
点击蓝色“Python空间”关注我丫加个“星标”,每天一起快乐的学习大家好,我是 Rocky0429,一个刚恰完午饭,正在用刷网页浪费生命的蒟蒻...一堆堆无聊八卦信息的网页内容慢慢使我的双眼模糊,一个哈欠打出了三斤老泪,就在此时我看到了一张图片:是谁!是谁把我女朋友的照片放出来的!awsl!太好看了叭...等等,那个背景上的一堆鬼画符是什么鬼?!真是看不下去!叔叔婶婶能忍,隔壁老王的三姨妈的四表...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
相关热词 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件 c#注册dll文件 c#安装.net
立即提问