无法将参数值从Double转换为DateTime。 [英] Failed to convert parameter value from a Double to a DateTime.

查看:180
本文介绍了无法将参数值从Double转换为DateTime。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何解决此错误?

无法将参数值从Double转换为DateTime。



这是我的代码



How to fix this error??
"Failed to convert parameter value from a Double to a DateTime."

This is my Code

//setting procedure properties
procedureName = "Add_tbloutboundInvoiceDetails";
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("@HAWBamount", 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 = 0;//0
parameters[1].Value = DropDownh.SelectedValue.ToString().Replace("'", "''");//1
parameters[2].Value = Double.Parse(txtvalue.Text.Trim().Replace("'", "''"));//2
parameters[3].Value = Double.Parse(txtexchage.Text.Trim().Replace("'", "''"));//3
parameters[4].Value = Double.Parse(txtUSD.Text.Trim().Replace("'", "''"));//4
parameters[5].Value = Double.Parse(txtLKR.Text.Trim().Replace("'", "''"));//5
parameters[6].Value = Double.Parse(txtfuel0.Text.Trim().Replace("'", "''"));//6
parameters[7].Value = DropDiz.SelectedValue.ToString().Replace("'", "''");//7
parameters[8].Value = "USD";//8
DateTime DateTime1 = DateTime.Now;
parameters[9].Value = DateTime1.ToString();//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

Boolean status1 = Common.executeProcedure(procedureName, cmdType, parameters);







<小> 索引更改为提高可读性[/ edit]




[edit]indexation changed to improve readability[/edit]

推荐答案

首先,使用AddWithValue - 它使它很多更清楚:

First off, use AddWithValue - it makes it a lot clearer:
parameters.AddWithValue("@InvoiceNo", 0);
parameters.AddWithValue("@H",DropDownh.SelectedValue.ToString().Replace("'", "''"));
parameters.AddWithValue("@value", Double.Parse(txtvalue.Text.Trim()));
...

然后,不要将DateTime转换为字符串:

Then, don't convert DateTime to string:

parameters.AddWithValue("@InvoiceDatetime", DateTime.Now);

假设您的数据库列是正确的,它应该全部工作正常。

And assuming your database columns are right, it should all work ok.


我认为在你的double变量中有某种方式出现null,如果它那么它就不会转换为datetime。这是我的假设
I think there is null coming somehow in your double variable ,if it so then it will not convert into datetime. It is my assumption only


这篇关于无法将参数值从Double转换为DateTime。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆