程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何将空值转换为默认(浮点)0.0 值,并应将该默认值保存到 MYSql 版本(6.0.11-alpha-community)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何将空值转换为默认(浮点)0.0 值,并应将该默认值保存到 MYSql 版本(6.0.11-alpha-community)?

开发过程中遇到如何将空值转换为默认(浮点)0.0 值,并应将该默认值保存到 MYSql 版本(6.0.11-alpha-community)的问题如何解决?下面主要结合日常开发的经验,给出你关于如何将空值转换为默认(浮点)0.0 值,并应将该默认值保存到 MYSql 版本(6.0.11-alpha-community)的解决方法建议,希望对你解决如何将空值转换为默认(浮点)0.0 值,并应将该默认值保存到 MYSql 版本(6.0.11-alpha-community)有所启发或帮助;

动态读取excel数据(来自filezilla)并保存到MysqL版本(6.0.11-Alpha-community)

我正在使用存储过程(捕获 Excel.csv 数据)并将其保存到 MysqL 版本(6.0.11-Alpha-community)中

但是当我执行或将数据保存到 MysqL 时,我收到此错误:

如何将空值转换为默认(浮点)0.0 值,并应将该默认值保存到 MYSql 版本(6.0.11-alpha-community)

上图中2021070701.csv和2021070801.csv正在读取并保存到MysqL中是可以的,因为excel文件(特定单元格)中没有空数据。

当它执行到这个文件 2021070201.csv 时,我收到“格式异常错误”

2021070201.csv(excel) 数据格式如下: (2021070201.csv excel数据和蓝色突出显示的单元格是浮点值,单元格包含空数据)

如何将空值转换为默认(浮点)0.0 值,并应将该默认值保存到 MYSql 版本(6.0.11-alpha-community)

这是我写的逻辑读取excel数据并存入MysqL


  else if (mpType.Equals("InDices",StringComparison.InvariantCultureIgnoreCasE))
    {
        MAE_Repo.InsertNseInDicesPrice("Usp_tbl_InTraday_NseInDicesPrice",Convert.ToInt32(res[0]),res[1],Convert.ToSingle(res[2]),Convert.ToSingle(res[3]),Convert.ToSingle(res[4]),Convert.ToSingle(res[5]),Convert.ToSingle(res[6]),Convert.ToSingle(res[7]),Convert.ToSingle(res[8]),Convert.ToSingle(res[9]),Convert.ToSingle(res[10]),Convert.TodatetiR_395_11845@e(res[11]),res[12],timestamp,fileName);
    }

这就是我写的 SP 逻辑:

 Public static voID InsertNseInDicesPrice(String Procname,int ipID,int ipIndextoken,String ipSymbol,float ipCLOSE,float ipOPEN,float ipHigh,float ipLow,float ipVolume,float ipVALUE,float ipprev_close,float ipCHANGE,float ipPer_Change,datetiR_395_11845@e ipUpdtime,String ipFlag,datetiR_395_11845@e ipCreatedOn,String ipfileName)
        {
            con.open();
            MysqLCommand cmdsel = new MysqLCommand(Procname,con);
            cmdsel.CommandType = System.Data.CommandType.StoredProcedure;

            cmdsel.Parameters.AdDWithValue("@IPID",0);
            cmdsel.Parameters.AdDWithValue("@IPIndextoken",ipIndextoken);
            cmdsel.Parameters.AdDWithValue("@IPSymbol",ipSymbol);
            cmdsel.Parameters.AdDWithValue("@IPCLOSE",ipCLOSE);
            cmdsel.Parameters.AdDWithValue("@IPOPEN",ipOPEN);
            cmdsel.Parameters.AdDWithValue("@IPHigh",ipHigh);
            cmdsel.Parameters.AdDWithValue("@IPLow",ipLow);
            cmdsel.Parameters.AdDWithValue("@IPVolume",ipVolumE);
            cmdsel.Parameters.AdDWithValue("@IPVALUE",ipvalue);
            cmdsel.Parameters.AdDWithValue("@IPprev_close",ipprev_closE);
            cmdsel.Parameters.AdDWithValue("@IPCHANGE",ipCHANGE);
            cmdsel.Parameters.AdDWithValue("@IPPer_Change",ipPer_ChangE);
            cmdsel.Parameters.AdDWithValue("@IPUpdtime",ipUpdtimE);
            cmdsel.Parameters.AdDWithValue("@IPFlag",ipFlag);
            cmdsel.Parameters.AdDWithValue("@IPCreatedOn",ipCreatedOn);
            cmdsel.Parameters.AdDWithValue("@IPfilename",ipfileName);
            cmdsel.Parameters.AdDWithValue("@OPType",1);


            MysqLDataAdapter da = new MysqLDataAdapter(cmdsel);
            DataSet ds = new DataSet();
            da.Fill(ds);
            con.Close();
        }

这是我在MysqL中的存储过程

DEliMITER $$

USE `marketprice_nse`$$

DROP PROCEDURE IF EXISTS `Usp_tbl_InTraday_NseInDicesPrice`$$

CREATE defineR=`root`@`localhost` PROCEDURE `Usp_tbl_InTraday_NseInDicesPrice`(IN IPID BIGINT,IN IPIndextoken INT,IN IPSymbol VARCHAR(20),IN IPCLOSE float,IN IPOPEN float,IN IPHigh float,IN IPLow float,IN IPVolume float,IN IPVALUE float,IN IPprev_close float,IN IPCHANGE float,IN IPPer_Change float,IN IPUpdtime datetiR_395_11845@E,IN IPFlag VARCHAR(1),IN IPCreatedOn datetiR_395_11845@E,IN IPfilename varchar(30),IN OPtype int)
BEGIN
IF (OPType = 1)-- Insert
THEN
     -- IF (SELECT 1 FROM tbl_inTraday_nseinDicesprice WHERE filename = IPfileName) = 0
     -- THEN
     -- BEGIN
        INSERT INTO tbl_InTraday_NseInDicesPrice (ID,Indextoken,Symbol,`CLOSE`,`OPEN`,High,Low,Volume,`VALUE`,prev_close,`CHANGE`,Per_Change,Updtime,Flag,CreatedOn,fileName) VALUES (IPID,IPIndextoken,IPSymbol,IPCLOSE,IPOPEN,IPHigh,IPLow,IPVolume,IPVALUE,IPprev_close,IPCHANGE,IPPer_Change,IPUpdtime,IPFlag,IPCreatedOn,IPfileName);
         
      -- END;
      -- END IF;     
      
ELSEIF (OPType = 2)-- check filename availability 
THEN
SELECT * FROM tbl_inTraday_nseinDicesprice WHERE filename=IPfilename;
END IF;
      
    END$$

DEliMITER ;

我尝试了不同的方法

Single.Parse() Method
float.Parse() Method
Convert.ToSingle() Method

这些方法都没有解决格式异常

如何在没有任何格式异常的情况下将默认值(0.0)保存到 MysqL 中?

解决方法

根据评论,这就是答案:

你可以写Convert.ToSingle(res[6])而不是写Convert.ToSingle(res[6] ?? "0.0")。然后,如果 res[6] 的值为 null,则将使用字符串“0.0”转换为单个。

如果您需要担心各种语言环境以句点或逗号作为小数点分隔符,您可以简单地使用“0”作为默认值(这也将转换为 0.0 浮点数),或者创建一个具有本地小数点分隔符的字符串

    String defaultFloatValue = (0.0F).toString();

并使用它代替“0.0”字面量。

大佬总结

以上是大佬教程为你收集整理的如何将空值转换为默认(浮点)0.0 值,并应将该默认值保存到 MYSql 版本(6.0.11-alpha-community)全部内容,希望文章能够帮你解决如何将空值转换为默认(浮点)0.0 值,并应将该默认值保存到 MYSql 版本(6.0.11-alpha-community)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。