Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.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
来自'的无效强制转换;双倍';至';日期时间';在asp.net中_Asp.net_Sql Server - Fatal编程技术网

来自'的无效强制转换;双倍';至';日期时间';在asp.net中

来自'的无效强制转换;双倍';至';日期时间';在asp.net中,asp.net,sql-server,Asp.net,Sql Server,!![我的错误消息如何修复此错误,我已检查了数据表、过程,但找不到此错误 procedureName = "InvoiceDetails"; cmdType = CommandType.StoredProcedure; parameters.Add(new SqlParameter("@InvoiceNo", SqlDbType.Int));//0 parameters.Add(new SqlParameter("@H", SqlDbType.NVarChar, 50));//1 parame

!![我的错误消息如何修复此错误,我已检查了数据表、过程,但找不到此错误

procedureName = "InvoiceDetails";
cmdType = CommandType.StoredProcedure;

parameters.Add(new SqlParameter("@InvoiceNo", SqlDbType.Int));//0
parameters.Add(new SqlParameter("@H", SqlDbType.NVarChar, 50));//1
parameters.Add(new SqlParameter("@value", SqlDbType.Decimal ));//2
parameters.Add(new SqlParameter("@ExchangeRate", SqlDbType.Decimal));//3
parameters.Add(new SqlParameter("@Hamount", SqlDbType.Decimal));//4
parameters.Add(new SqlParameter("@HAWBAmountLKR", SqlDbType.Decimal));//5
parameters.Add(new SqlParameter("@Discountamount ", SqlDbType.Decimal));//6
parameters.Add(new SqlParameter("@DisType", SqlDbType.Int));//7
parameters.Add(new SqlParameter("@CurrencyType", SqlDbType.VarChar,(10)));//8
parameters.Add(new SqlParameter("@InvoiceDatetime",SqlDbType.DateTime));//9
parameters.Add(new SqlParameter("@fuel",SqlDbType.Decimal));//10
parameters.Add(new SqlParameter("@Invoicecode", SqlDbType.NVarChar, 30));//11
parameters.Add(new SqlParameter("@InvoiceTotal", SqlDbType.Decimal));//12
parameters.Add(new SqlParameter("@compCode", SqlDbType.NVarChar, 30));//13
parameters.Add(new SqlParameter("@CreateUserID", SqlDbType.NVarChar, 30));//14
parameters.Add(new SqlParameter("@Status", SqlDbType.Int));//15

//Inserting data through stored procedure
parameters[0].Value = 1;//0
parameters[1].Value = DropDownh.SelectedValue.ToString();//1
parameters[2].Value = Double.Parse(txtvalue.Text.Trim());//2
parameters[3].Value = Double.Parse(txtexchage.Text.Trim());//3
parameters[4].Value = Double.Parse(txtUSD.Text.Trim());//4
parameters[5].Value = Double.Parse(txtLKR.Text.Trim());//5
parameters[6].Value = Double.Parse(txtfuel0.Text.Trim());//6
parameters[7].Value = DropDiz.SelectedValue.ToString();//7
parameters[8].Value = "USD";//8
parameters[9].Value = DateTime.Now;//DateStampLabel.Text.Trim().Replace("'", "''"); //9
parameters[10].Value = "0.00";//10
parameters[11].Value = "N/A";//11
parameters[12].Value = "0.00";//12
parameters[13].Value = LblcompCode.Text.Trim().Replace("'", "''");//13
parameters[14].Value = LbluserName.Text.Trim().Replace("'", "''");//14
parameters[15].Value = 0;//15

]我怀疑
参数[7]
应该是
int

procedureName = "InvoiceDetails";
cmdType = CommandType.StoredProcedure;

parameters.Add(new SqlParameter("@InvoiceNo", SqlDbType.Int));//0
parameters.Add(new SqlParameter("@H", SqlDbType.NVarChar, 50));//1
parameters.Add(new SqlParameter("@value", SqlDbType.Decimal ));//2
parameters.Add(new SqlParameter("@ExchangeRate", SqlDbType.Decimal));//3
parameters.Add(new SqlParameter("@Hamount", SqlDbType.Decimal));//4
parameters.Add(new SqlParameter("@HAWBAmountLKR", SqlDbType.Decimal));//5
parameters.Add(new SqlParameter("@Discountamount ", SqlDbType.Decimal));//6
parameters.Add(new SqlParameter("@DisType", SqlDbType.Int));//7
parameters.Add(new SqlParameter("@CurrencyType", SqlDbType.VarChar,(10)));//8
parameters.Add(new SqlParameter("@InvoiceDatetime",SqlDbType.DateTime));//9
parameters.Add(new SqlParameter("@fuel",SqlDbType.Decimal));//10
parameters.Add(new SqlParameter("@Invoicecode", SqlDbType.NVarChar, 30));//11
parameters.Add(new SqlParameter("@InvoiceTotal", SqlDbType.Decimal));//12
parameters.Add(new SqlParameter("@compCode", SqlDbType.NVarChar, 30));//13
parameters.Add(new SqlParameter("@CreateUserID", SqlDbType.NVarChar, 30));//14
parameters.Add(new SqlParameter("@Status", SqlDbType.Int));//15

//Inserting data through stored procedure
parameters[0].Value = 1;//0
parameters[1].Value = DropDownh.SelectedValue.ToString();//1
parameters[2].Value = Double.Parse(txtvalue.Text.Trim());//2
parameters[3].Value = Double.Parse(txtexchage.Text.Trim());//3
parameters[4].Value = Double.Parse(txtUSD.Text.Trim());//4
parameters[5].Value = Double.Parse(txtLKR.Text.Trim());//5
parameters[6].Value = Double.Parse(txtfuel0.Text.Trim());//6
parameters[7].Value = DropDiz.SelectedValue.ToString();//7
parameters[8].Value = "USD";//8
parameters[9].Value = DateTime.Now;//DateStampLabel.Text.Trim().Replace("'", "''"); //9
parameters[10].Value = "0.00";//10
parameters[11].Value = "N/A";//11
parameters[12].Value = "0.00";//12
parameters[13].Value = LblcompCode.Text.Trim().Replace("'", "''");//13
parameters[14].Value = LbluserName.Text.Trim().Replace("'", "''");//14
parameters[15].Value = 0;//15
试着这样做:

procedureName = "InvoiceDetails";
cmdType = CommandType.StoredProcedure;

parameters.Add(new SqlParameter("@InvoiceNo", SqlDbType.Int));//0
parameters.Add(new SqlParameter("@H", SqlDbType.NVarChar, 50));//1
parameters.Add(new SqlParameter("@value", SqlDbType.Decimal ));//2
parameters.Add(new SqlParameter("@ExchangeRate", SqlDbType.Decimal));//3
parameters.Add(new SqlParameter("@Hamount", SqlDbType.Decimal));//4
parameters.Add(new SqlParameter("@HAWBAmountLKR", SqlDbType.Decimal));//5
parameters.Add(new SqlParameter("@Discountamount ", SqlDbType.Decimal));//6
parameters.Add(new SqlParameter("@DisType", SqlDbType.Int));//7
parameters.Add(new SqlParameter("@CurrencyType", SqlDbType.VarChar,(10)));//8
parameters.Add(new SqlParameter("@InvoiceDatetime",SqlDbType.DateTime));//9
parameters.Add(new SqlParameter("@fuel",SqlDbType.Decimal));//10
parameters.Add(new SqlParameter("@Invoicecode", SqlDbType.NVarChar, 30));//11
parameters.Add(new SqlParameter("@InvoiceTotal", SqlDbType.Decimal));//12
parameters.Add(new SqlParameter("@compCode", SqlDbType.NVarChar, 30));//13
parameters.Add(new SqlParameter("@CreateUserID", SqlDbType.NVarChar, 30));//14
parameters.Add(new SqlParameter("@Status", SqlDbType.Int));//15

//Inserting data through stored procedure
parameters[0].Value = 1;//0
parameters[1].Value = DropDownh.SelectedValue.ToString();//1
parameters[2].Value = Double.Parse(txtvalue.Text.Trim());//2
parameters[3].Value = Double.Parse(txtexchage.Text.Trim());//3
parameters[4].Value = Double.Parse(txtUSD.Text.Trim());//4
parameters[5].Value = Double.Parse(txtLKR.Text.Trim());//5
parameters[6].Value = Double.Parse(txtfuel0.Text.Trim());//6
parameters[7].Value = DropDiz.SelectedValue.ToString();//7
parameters[8].Value = "USD";//8
parameters[9].Value = DateTime.Now;//DateStampLabel.Text.Trim().Replace("'", "''"); //9
parameters[10].Value = "0.00";//10
parameters[11].Value = "N/A";//11
parameters[12].Value = "0.00";//12
parameters[13].Value = LblcompCode.Text.Trim().Replace("'", "''");//13
parameters[14].Value = LbluserName.Text.Trim().Replace("'", "''");//14
parameters[15].Value = 0;//15
Int.Parse(DropDiz.SelectedValue.ToString())

向代码中添加断点,调试并查找错误。哪一行出现异常?能否同时添加存储过程?是否确定是参数而不是存储过程本身?在该过程的开始处放置一个
返回值
,这样您可以获得参数值,但跳过处理。然后再试一次。我在asp.net中添加断点并将此错误从“Double”转换为“DateTime”,然后检查存储过程和数据表是否正常。例外情况是“从'Double'到'DateTime'的转换无效”,这可能也适用于#10和#12,但两者都不应生成确切的消息。相同的错误{“未能将参数值从Double转换为DateTime。”}注释存储过程和代码中的所有参数,然后按照@hans kesting所说的从存储过程开始返回。然后从两侧逐个取消注释每个参数。它将帮助您了解哪个参数是有问题的