在c#程序中更改sql server中表的数据类型

在c#程序中更改sql server中表的数据类型,c#,.net,sql-server,C#,.net,Sql Server,我正在尝试更改sql server表中某些列的数据类型。我需要将一些(但不是全部)列从varchar转换为int 我尝试了以下代码 SqlCommand command = new SqlCommand(null, conn); command.CommandText = "select sum(CountInput) from " + tableName; int linecodes = Convert.ToInt32(command.ExecuteScalar()); Console.

我正在尝试更改sql server表中某些列的数据类型。我需要将一些(但不是全部)列从varchar转换为int

我尝试了以下代码

SqlCommand command = new SqlCommand(null, conn);

command.CommandText = "select sum(CountInput) from " + tableName;

int linecodes = Convert.ToInt32(command.ExecuteScalar());

Console.WriteLine(linecodes + " lines of code");
但我收到一条错误消息:


“操作数数据类型varchar对于求和运算符无效”

数据库中的CountInput列是有效的数字列吗


您可以手动运行此代码生成的SQL吗?SQL似乎出了问题,而不是.Net代码。

这不是答案,应该是注释我无法添加注释,因为我的代表。。。我觉得回答问题比忽略问题要好。很高兴将其删除,如果其他人认为这个问题没有意义,他们会发表评论。根据查询和错误,
CountInput
字段是字符串而不是数值。您需要将字段转换为正确的类型,而不是通过某些转换来掩盖它。转换将导致性能差得多,因为数据库将无法使用索引和优化来加速计算。也许我的英语技能不是很高。当然,我知道列CountInput来自varchar类型,这是程序不工作的方式。但我想知道是否有可能用c#命令将此列的数据类型更改为int?“我不知道如何才能做到这一点。”-这让我很难过。@Arvo抱歉,但我试着解释我的问题,让我难过的是你否决了它,我不能问任何问题anymore@Arturka1我没有投反对票,但我理解那些投反对票的人——他们在警告你。你被否决了,因为你问了一个糟糕的问题。您应该阅读帮助中心中的内容,看看什么是好问题,这个问题有什么错:这个问题听起来像是“为我解决这个问题”,被认为是不好的形式。您有一条明确的错误消息,您试图忽略它。您要求的内容没有意义(将SQL列的类型从C更改为C)。