我对以下问题感到困惑;
我有一个 C# (WindowsForms) 应用程序,我连接到 SQL Server DB 并且对 INSERT、SELECT、UPDATE... 没有任何问题,直到我开始使用数字数据;
这个应用程序的目的是管理员工、他们的合同、工作率、合同期限、小时费率......并用它做一些有趣的计算,没什么神奇的。
基本上,我需要在我的数据库中存储一些格式为“0000,0000”的值(十进制?双精度?浮点数?)。
在我的数据库中,我已经将我的表设置为我需要将这些“000,0000”值转换为十进制的所有列
在我的表单中,我没有为我的文本框指定任何特定属性,
要插入,我使用我定义十进制参数的方法
public void createNewContract(int employeeId, string agency, string role, string contractType, string startDate, string endDate, string lineManager, string reportTo, string costCenter, string functionEng, string atrNo, string atrDate, string prNo, string prDate, string poNo, string poDate, string comments, decimal duration, decimal workRatePercent, string currency, decimal hourlyRate, decimal value) { if (conn.State.ToString() == "Closed") { conn.Open(); } SqlCommand newCmd = conn.CreateCommand(); newCmd.Connection = conn; newCmd.CommandType = CommandType.Text; newCmd.CommandText = "INSERT INTO tblContracts (CreatedById, CreationDate, EmployeeId, Role, ContractType, StartDate, " + "EndDate, Agency, LineManager, ReportTo, CostCenter, FunctionEng, AtrNo, AtrDate, PrNo, PrDate, PoNo, PoDate, Comments, Duration, WorkRatePercent, Currency, HourlyRate, Value)" + "VALUES ('" + connectedUser.getUserId() + "','" + DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss") + "','" + employeeId + "','" + role + "','" + contractType + "','" + startDate + "','" + endDate + "','" + agency + "','" + lineManager + "','" + reportTo + "','" + costCenter + "','" + functionEng + "','" + atrNo + "','" + atrDate + "','" + prNo + "','" + prDate + "','" + poNo + "','" + poDate + "','" + comments + "','" + duration + "','" + workRatePercent + "','" + currency + "','" + hourlyRate + "','" + value + "')"; newCmd.ExecuteNonQuery(); MessageBox.Show("Contract has been successfully created", "Completed", MessageBoxButtons.OK, MessageBoxIcon.Information); }
(通过这种方法,我只需插入 00,0000 持续时间(nb 小时)、工作率百分比、小时费率(货币货币)和值(货币货币))
- 为了捕获我的文本框值并通过我的方法“createNewContrat”发送它们,我尝试了 Convert.ToDecimal(this.txtDuration.Text) 和许多其他对我来说似乎不错的东西,但我无法理解机制,我我当然没有使用最实用/最聪明的解决方案......
我不断收到以下错误;
System.FormatException:Le format de la chaîne d'entrée est 不正确。= 输入/输入字符串的格式不正确
à System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
à System.Number.ParseDecimal(String value, NumberStyles options, NumberFormatInfo numfmt)
à System.Convert.ToDecimal(字符串值)
你会推荐什么?