Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 输入字符串的格式不正确。在System.Number.ParseDecimal DB2上。执行数据集_C#_Ado.net_Odbc_Db2 - Fatal编程技术网

C# 输入字符串的格式不正确。在System.Number.ParseDecimal DB2上。执行数据集

C# 输入字符串的格式不正确。在System.Number.ParseDecimal DB2上。执行数据集,c#,ado.net,odbc,db2,C#,Ado.net,Odbc,Db2,当我尝试在db2服务器中执行executedataset时,会出现此异常。 最奇怪的是,单元测试代码没有抛出异常,但是当我试图用相同的参数从网页调用它时,它抛出异常 以下是我的单元测试代码: [Test] public void Get_the_car_details_via_the_chassisnumber_WVWZZZ1KZCW240208() { //Arrange string chassisNumber

当我尝试在db2服务器中执行executedataset时,会出现此异常。 最奇怪的是,单元测试代码没有抛出异常,但是当我试图用相同的参数从网页调用它时,它抛出异常

以下是我的单元测试代码:

[Test]
        public void Get_the_car_details_via_the_chassisnumber_WVWZZZ1KZCW240208()
        {
            //Arrange
            string chassisNumber = "WVWZZZ1KZCW240208";

            string brand = "skoda";


            //Act
            Vehicle car = VehicleDA.GetVehicle(chassisNumber, "", brand).GetResult();

            //Assert
            Assert.IsNotNull(car);
            car.Type.ShouldBe("VOLKSWAGEN GOLF");

        }
这里是我如何从页面中调用它的,正如您所看到的,我硬编码了相同的参数,但它仍然不起作用

public Vehicle GetVehicleInformation(string chassis, string commissionnumber, string brand)
        {
            Vehicle car = VehicleDA.GetVehicle("WVWZZZ1KZCW240208", commissionnumber, "skoda").GetResult();
这是dal中的DB代码

public class VehicleDA
    {
        public static ResultForType<Vehicle> GetVehicle(string chassisNumber, string commissionNumber, string brand)
        {

            if (chassisNumber.Length != 17 && chassisNumber.Length > 0)
            {
                chassisNumber = new ChassisNumberSearch().GetCompleteChassisNumber(chassisNumber);
                if (chassisNumber == string.Empty)
                {
                    return CreateReturnWithError("Unknown chassis number");
                }
            }


            if (chassisNumber == string.Empty)
            {
                chassisNumber = GetTheLatestChassisNumberInCaseOfMultipleChassisNumbers(new ChassisNumberSearch().GetChassisNumber(commissionNumber));
                if (chassisNumber == string.Empty)
                {
                    return CreateReturnWithError("Unknown commision number");
                }
            }



            var vehicleXMLString = new VehicleSearch().GetVehicle(chassisNumber);

            if (GetDateTimeDataFor("DFACUSI", vehicleXMLString) < DateTime.Now.AddYears(-2))
            {
                return CreateReturnWithError("Vehicle is older then 2 years");
            }

            if ( GetDateTimeDataFor("DFACTUR", vehicleXMLString) == DateTime.MinValue)
            {
                return CreateReturnWithError("Invoice date is not filled in");
            }


            var vehicle = new Vehicle
                                  {
                                      Chassis = chassisNumber,
                                      ComissionNumber = GetDataFor("NCOMMIS", vehicleXMLString),
                                      Type = GetDataFor("LMAKTYP", vehicleXMLString),
                                      Year = GetIntDataFor("CANNMOD", vehicleXMLString),
                                      OrderDate = GetDateTimeDataFor("D705DAT", vehicleXMLString),
                                      InvoiceDate = GetDateTimeDataFor("DFACTUR", vehicleXMLString),
                                      InvoiceNumber = GetDataFor("NFACTUR", vehicleXMLString),
                                      DeliveryDate = GetDateTimeDataFor("DLIVRAI", vehicleXMLString),
                                      RegistrationDate = GetDateTimeDataFor("DIMMFIR", vehicleXMLString),
                                      CataloguePrice = GetDecimalDataFor("VPRICAT", vehicleXMLString),
                                      InvoicePrice = GetDecimalDataFor("VPRIFAC", vehicleXMLString),
                                      Code = GetDataFor("CINTERM", vehicleXMLString)

                                  };

            var result = new ResultForType<Vehicle>(vehicle);
            if (!vehicle.Type.ToLower().StartsWith(brand.ToLower()))
            {
                result.AddWarning("Brand of the dealer is different from the brand of the vehicle");
            } 

            if (vehicle.RegistrationDate < DateTime.Now.AddMonths(-3))
            {
                result.AddWarning("Registration date is older then 3 months");
            }

            //"Registration date is older then 3 months"



            return result;
        }

 public class VehicleSearch : DB2Base
    {
        public string GetVehicle(string chassisNumber)
        {
            const string procName = "CALL DBSP.xxx(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";

            var cmd = DB2Database.GetStoredProcCommand(procName);
            cmd.CommandType = CommandType.Text;

            if (chassisNumber.Length > 17)
            {
                chassisNumber = chassisNumber.Substring(0, 17);
            }

            CreateInputParameter("CFONCTI", cmd, "RB");
            CreateInputParameter("CFORMAT", cmd, "X");
            CreateInputParameter("CLANGUE", cmd, "E");
            CreateInputParameter("FEXTEND", cmd, "Y");
            CreateInputParameter("NCHASSI", cmd, chassisNumber);
            CreateStringParameter("LLIGXML", cmd, 250);
            CreateStringParameter("CIDFVAR", cmd, 10);
            CreateStringParameter("LVALVAR", cmd, 250);
            CreateStringParameter("CEQUIPE", cmd, 4);
            CreateStringParameter("CEQUPAC", cmd, 4);
            CreateStringParameter("LEQUCOUF", cmd, 30);
            CreateStringParameter("LEQUCOUN", cmd, 30);
            CreateStringParameter("LEQUCOUD", cmd, 30);
            CreateStringParameter("LEQUCOUE", cmd, 30);
            CreateStringParameter("LEQULONF", cmd, 120);
            CreateStringParameter("LEQULONN", cmd, 120);
            CreateStringParameter("LEQULOND", cmd, 120);
            CreateStringParameter("LEQULONE", cmd, 120);
            CreateStringParameter("CTYPOPT", cmd, 1);
            CreateStringParameter("CCATOPT", cmd, 1);
            CreateStringParameter("CEQUGEN", cmd, 4);
            CreateDecimalParameter("VHTVAXX", cmd, 10);
            CreateStringParameter("CRETOUR", cmd, 2);
            CreateStringParameter("LMSGERR", cmd, 70);
            CreateStringParameter("LSPPROG", cmd, 8);
            CreateStringParameter("LSPPARG", cmd, 30);
            CreateSmallIntParameter("CSPRETC", cmd, 2);
            CreateIntParameter("CSQLAST", cmd, 4);
            CreateStringParameter("LSQLMSG", cmd, 70);

            var dataset = DB2Database.ExecuteDataSet(cmd);
            var result = new StringBuilder();

            if (dataset.HasRowsInTheFirstTable())
            {
                foreach (DataRow row in dataset.Tables[0].Rows)
                {
                    result.Append(row[0]);
                }
            }

            return result.ToString();
        }
公共级车辆a
{
GetVehicle类型的公共静态结果(字符串chassisNumber、字符串commissionNumber、字符串brand)
{
如果(chassisNumber.Length!=17&&chassisNumber.Length>0)
{
chassisNumber=新的ChassisNumberSearch().GetCompleteCassisNumber(chassisNumber);
if(chassisNumber==string.Empty)
{
return CreateReturnWithError(“未知机箱号”);
}
}
if(chassisNumber==string.Empty)
{
chassisNumber=GetthelatestChassisNumberInCaseofMultipleChassisNumber(新ChassisNumberSearch().GetChassisNumber(commissionNumber));
if(chassisNumber==string.Empty)
{
return CreateReturnWithError(“未知佣金编号”);
}
}
var vehicleXMLString=新车辆搜索().GetVehicle(chassisNumber);
if(GetDateTimeDataFor(“DFACUSI”,VehicleMlString)17)
{
chassisNumber=chassisNumber.子串(0,17);
}
CreateInputParameter(“CFONCTI”,cmd,“RB”);
CreateInputParameter(“CFORMAT”,cmd,“X”);
CreateInputParameter(“CLANGUE”,cmd,“E”);
CreateInputParameter(“FEXTEND”,cmd,“Y”);
CreateInputParameter(“NCHASSI”,cmd,chassisNumber);
CreateStringParameter(“LLIGXML”,cmd,250);
CreateStringParameter(“CIDFVAR”,cmd,10);
CreateStringParameter(“LVALVAR”,cmd,250);
CreateStringParameter(“CEQUIPE”,cmd,4);
CreateStringParameter(“CEQUPAC”,cmd,4);
CreateStringParameter(“LEQUCOUF”,cmd,30);
CreateStringParameter(“lequcon”,cmd,30);
CreateStringParameter(“LEQUCOUD”,cmd,30);
CreateStringParameter(“LEQUCOUE”,cmd,30);
CreateStringParameter(“LEQULONF”,cmd,120);
CreateStringParameter(“lequlon”,cmd,120);
CreateStringParameter(“LEQULOND”,cmd,120);
CreateStringParameter(“LEQULONE”,cmd,120);
CreateStringParameter(“CTYPOPT”,cmd,1);
CreateStringParameter(“CCATOPT”,cmd,1);
CreateStringParameter(“CEQUGEN”,cmd,4);
CreateDecimalParameter(“VHTVAXX”,cmd,10);
CreateStringParameter(“CRETOUR”,cmd,2);
CreateStringParameter(“LMSGERR”,cmd,70);
CreateStringParameter(“LSPPROG”,cmd,8);
CreateStringParameter(“LSPPARG”,cmd,30);
CreateSmallIntParameter(“CSPRETC”,cmd,2);
CreateIntParameter(“CSQLAST”,cmd,4);
CreateStringParameter(“LSQLMSG”,cmd,70);
var dataset=DB2Database.ExecuteDataSet(cmd);
var result=新的StringBuilder();
if(dataset.HasRowsInTheFirstTable())
{
foreach(数据集中的DataRow行。表[0]。行)