2017-04-07 104 views
-2

在C#代码中,我有一个字符串已连接在一起构建SQL插入语句,然后传递到存储过程并运行。 问题是我在连接字符串中有一个字段,称之为Salary,它是数据库中的一个数字。但是,由于它是用C#代码构建的,所以它显然是一个字符串。在SP插入时出现错误,Error converting data type varchar to numeric。创建的大插入字符串一次在SP中运行,因此我无法检查SP中的单个值。而且我无法使Salary =字符串null,因为它只是插入字符串“null”而不是空值。如何将null插入到SQL字符串中

+0

可以粘贴你的代码?通常它会像'set @sql ='select someColumn'+ cast(intColumn as varchar(16))+'from sometable'' – scsimon

+1

显示代码而不是描述它 –

+2

首先我不得不说,请尝试使用正确的SqlCommands和SqlParameters。其次,你是在这个数字上加单引号吗? – Crowcoder

回答

2

您需要像这样在代码中添加一些逻辑。

if string.IsNullOrEmpty(Salary) 
{ 
    MyParameter = DBNull.Value; 
} 
else 
{ 
    MyParameter = int.Parse(Salary); 
} 
+0

DBNull.Value不会在sql的字符串中工作。 – Crowcoder

+0

UGH!我没有意识到他们喜欢sql注入并且完全错误。 –

1
MyParameter = string.IsNullOrEmpty(Salary) ? (object)DBNull.Value : Salary; 
相关问题