c#sql将double值赋值为sql

时间:2016-03-10 13:02:35

标签: c# sql-server

您好我试图将c#中的double值添加到Table中的sql float字段。

KingfisherManager.shared.retrieveImage(with: url, options: nil, progressBlock: nil, completionHandler: { image, error, cacheType, imageURL in
    print(image)
})

但是当实际保存到db时会保存错误的数字。像12,3这样的东西使12.3 .....所以我的问题是如何防止这种情况发生?所以当我键入12,3时,它会向表中写入12,3。任何建议都很棒thx

对不起我的英语而不是母语

编辑:关于我现在的SQL注入,但没有这个接口。

EDIT2:数据库中的数据类型为float。

EDIT3:5,1,8,9,0,51,4,59这里是输出的一个例子。 Insted 5.1它说5,1并将其视为两个字段。当我尝试运行它时,我得到一个例外。

1 个答案:

答案 0 :(得分:3)

参数就是你想要的......这样做就是邀请SQL注入攻击。

以下是它的基本要点:

 SELECT * FROM Artists where ArtistId IN (
      SELECT [RelatedArtistId]
      FROM [dbo].[RelatedArtists]
      WHERE artistId = 740
 )

这不仅会阻止SQL注入,还会将应用于参数的对象属性/值的类型映射到正确的cmd.CommantText = "INSERT INTO Table (Field1, Field2) VALUES(@Param1, @Param2);"; cmd.Parameters.AddWithValue("@Param1", yourObj.Property1); cmd.Parameters.AddWithValue("@Param2", someMethodToReturnValue(someParam));

无论是否缺少界面,使用参数并避免注入攻击仍然是最佳做法(如果这些值不是,那么将来就不会有这样的事情。 #39; t在其他地方提供,或者如果一些未经干预的开发人员复制你的代码怎么办?没有理由在参数化查询中使用字符串连接,并且每个理由都不...而且当然是一个额外的加号是正确的类型映射!)

上次修改:SqlDbType无法处理可能的空值,因此您可以编写一个快速扩展方法,例如AddWithValue

AddWithNullableValue

(取自此处:Exception when AddWithValue parameter is NULL