C#sql server转换失败错误nvarchar值为int?

时间:2014-08-20 09:48:30

标签: c# asp.net sql-server type-conversion

如何在我的代码中修复此问题:

str = "SELECT " + columnName + " FROM [tableA] where Company_ID=" + HaksId.ToString() + "";
cmd.CommandText = str;
cmd.Connection = conn;
adpt.SelectCommand = cmd;
adpt.Fill(ds);

在上面的代码中只提到需要的东西显然conn是连接字符串我已经提到了所有的东西他们工作正常这个代码中还有一些其他错误

其中columnname是字符串,Id是整数

错误是

  

转换nvarchar值时转换失败' [Select]'数据类型int。

返回值是decimal(18,0)

类型的值

希望得到你的建议

谢谢

EDITED

columname="Avg"
HaksId=1

Company_ID属于nvarchar

查询结果应为2。

这帮助了我,

"SELECT " + columnName + " FROM [tableA] where Company_ID='" + HaksId+ "'"

1 个答案:

答案 0 :(得分:2)

参数应该在这里解决问题。 我会改变这个;

str = "SELECT " + columnName + " FROM [tableA] where Company_ID=" + HaksId.ToString() + "";

对此;

str = "SELECT " + columnName + " FROM [tableA] where Company_ID = @CompanyID";

然后使用它;

adpt.SelectCommand.Parameters.Add("@CompanyID", SqlDbType.Int).Value = Haks;
adpt.Fill(ds);