当前位置: 首页 > 编程语言 > C#

从文本框值中插入数字(十进制)数据分享

时间:2023-04-10 18:20:48 C#

C#学习教程:从文本框值中插入数值(小数)数据我有一个连接到SQLServer数据库的C#(WindowsForms)应用程序,插入、选择、更新都没有问题……直到我开始使用数字数据;这个应用程序的目的是管理员工、他们的合同、工作率、合同期限、小时费率......并做一些有趣的计算,没有魔法。基本上,我需要在我的数据库中以“0000,0000”的格式存储一些值(十进制?双精度?浮点数?)。(使用这种方法,我只需要插入00,0000作为持续时间(nb小时)、工作费率、每小时费率(货币货币)和价值(货币货币))我不断收到以下错误;System.FormatException:Leformatdelacha?ned'entréeest错误。=输入/输入字符串格式不正确àSystem.Number.StringToNumber(Stringstr,NumberStylesoptions,NumberBuffer&number,NumberFormatInfoinfo,BooleanparseDecimal)àSystem.Number.ParseDecimal(Stringvalue,NumberStylesoptions,NumberFormatInfonumfmt)àSystem。转变。ToDecimal(Stringvalue)你会推荐什么?首先,在处理SqlConnection和SqlCommand时始终使用using,并为所有其他类实现IDisposable,只需阅读更多相关信息。第二件事,始终使用SqlCommand参数,永远不要将值作为字符串传递给sql字符串。这是一个严重的安全问题。除去这些参数使您的代码人性化!//在处理Sql连接和命令时总是使用(使用)使用(SqlCommandnewCmd=newSqlCommand(conn)){newCmd.CommandType=CommandType.Text;newCmd.CommandText=@"插入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(@UserID,@CreationDate,@EmployeeID,@Role.....等)";//出于安全原因(Sql注入攻击)始终使用参数newCmd.Parameters.Add("@UserID",SqlDbType.NVarChar,50).Value=connectedUser.getUserId();newCmd.Parameters.Add("@CreationDate",SqlDbType.DateTime).Value=DateTime.Now;//添加来自文本框的十进制值newCmd.Parameters.Add("@SomeValue",SqlDbType.Decimal).Value=System.Convert.ToDecimal(txtValueTextBox.Text);//完成其余参数//......newCmd.ExecuteNonQuery();MessageBox.Show("合约创建成功","完成",MessageBoxButtons.OK,MessageBoxIcon.Information);这不是您问题的直接答案,但请(!)将这个丑陋的方法替换为:为您的合同创建一个类这将使处理合同变得更加容易。如果您有多个方法以某种方式处理收缩,则在向合同添加属性时,您不必更改所有这些方法的无休止的参数列表。publicclassContract{publicintEmployeeID{get;放;}publicstringAgency{get;放;}公共字符串角色{得到;放;}...等等}并将方法签名更改为publicvoidCreateNewContract(Contractcontract)从数据库加载合约的方法的标头如下所示publicListLoadAllContracts()//假设contractID是主键publicContractLoadContractByID(intcontractID)比返回1000个变量容易得多!您可以创建一个新合同varcontract=newContract{EmployeeID=22,Agency="unknown",Role="important",...};或者(正如其他人已经指出的那样)使用命令参数。newCmd.Parameters.AddWithValue("@EmployeeID",contract.EmployeeID);newCmd.Parameters.AddWithValue("@Agency",contract.Agency);newCmd.Parameters.AddWithValue("@Role",contract.Role);(HaLaBi帖子展示了如何制定插入命令字符串。)以上是C#学习教程:Insertingnumeric(decimal)datafromthetextboxvalue。希望大家多多关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: