Я создаю веб-приложение, с помощью C#,Ошибка преобразования типа данных varchar в float. C# вебсервис
Вот мой вебсервис для сохранения записи
[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public void saverecd(string id, string particular,string amt,string adjamt,string tdate, string total, string date, string utrno, string modeofpayment, string transferdate,string trainer, string typeofadj, string bnkid)
{
List<string> td = tdate.Split(',').ToList();
int i = 0;
foreach (string t in td)
{
SqlCommand cmd = new SqlCommand("insert into finalinstructoreexpense(sonvinid,particulars,amount,totalamt,date,utno,paymentid,paymode,issuedate,sondate,trainer,type,bank_id) values('@sonvinid','@particulars','@amount','@totalamt','@date','@utno','@paymentid','@paymode','@issuedate','@sondate','@trainer','@type','@bank_id')", con);
con.Open();
cmd.Parameters.Add("@id", SqlDbType.Int).Value =Convert.ToInt32(id);
cmd.Parameters.Add("@particular", SqlDbType.NVarChar).Value = particular;
cmd.Parameters.Add("@amount",SqlDbType.Float).Value=adjamt.Split(',')[i];
cmd.Parameters.Add("@totalamt", SqlDbType.NVarChar).Value = total;
cmd.Parameters.Add("@date", SqlDbType.DateTime).Value = date.Split(',')[i];
cmd.Parameters.Add("@utno", SqlDbType.NVarChar).Value = utrno;
cmd.Parameters.Add("@paymentid",SqlDbType.NVarChar).Value=paymentid;
cmd.Parameters.Add("@paymode", SqlDbType.NVarChar).Value = modeofpayment;
cmd.Parameters.Add("@issuedate", SqlDbType.DateTime).Value = transferdate;
cmd.Parameters.Add("@sondate", SqlDbType.DateTime).Value = t;
cmd.Parameters.Add("@trainer", SqlDbType.NVarChar).Value = trainer;
cmd.Parameters.Add("@type", SqlDbType.NVarChar).Value = typeofadj;
cmd.Parameters.Add("@bank_id", SqlDbType.Int).Value = Convert.ToInt32(bnkid);
cmd.ExecuteNonQuery();
message = "Adjusted Amount Inserted Successfully";
con.Close();
}
}
я не знаю, что случилось с этим кодом,
это то, что я войти в веб-службы
Параметр Значение идентификатор: 0 частности: 0001 амт: 10 adjamt: 10 TDate:
01-01-201 3,01-01-2013 всего: 20 Дата: 01-01-2013 utrno: тест modeofpayment: тест transferdate: 01-01-2013 тренер: Ibrahim SHAIKH typeofadj: регулировка bnkid:
Invoke
и следующая ошибка
System.Data.SqlClient.SqlException: Error converting data type varchar to float.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at mvcerp2.newpayment.saverecd(String id, String particular, String amt, String adjamt, String tdate, String total, String date, String utrno, String modeofpayment, String transferdate, String trainer, String typeofadj, String bnkid) in Z:\mvcerp2\mvcerp2\newpayment.asmx.cs:line 135
Начните с уменьшения этого до * просто * параметра, вызывающего проблему, - вы можете это выяснить, но мы не можем легко. Кроме того, в будущем, пожалуйста, найдите время, чтобы четко форматировать код без каких-либо посторонних отступов. Это не займет много времени, но это делает разницу в удобочитаемости. –
Один из ваших столбцов - это float, и вы передаете строку. Вы даже не посмотрели сообщение об ошибке? –
извините, сэр, что запомнит это для следующего сообщения. –