C# 使用MVC4的SQL查询的转换错误(nvarchar到int)

C# 使用MVC4的SQL查询的转换错误(nvarchar到int),c#,sql,asp.net-mvc,asp.net-mvc-4,C#,Sql,Asp.net Mvc,Asp.net Mvc 4,我从Shark探员的另一篇stackoverflow文章中收到了这段代码,并对其进行了轻微的修改以供我使用。问题是我得到了一个错误: 将nvarchar值“3943239431394303942939428”转换为数据类型int时,转换失败 问题是,我如何解决这个问题 原StackOverFlow Post: 以下是我正在使用的代码: public void DeleteBatchCampaignContacts(IList<int> ids) { if (ids == n

我从Shark探员的另一篇stackoverflow文章中收到了这段代码,并对其进行了轻微的修改以供我使用。问题是我得到了一个错误:

将nvarchar值“3943239431394303942939428”转换为数据类型int时,转换失败

问题是,我如何解决这个问题

原StackOverFlow Post:

以下是我正在使用的代码:

public void DeleteBatchCampaignContacts(IList<int> ids)
{
    if (ids == null) return;
    if (ids.Count == 0) return;

    var idsToDelete = new StringBuilder();

    foreach (var id in ids)
    {
        idsToDelete.AppendFormat(",{0}", id);
    }

    db.Database.ExecuteSqlCommand("DELETE FROM EmailContactCampaign WHERE EmailContact_EmailContactId in (@contactIds)",
    new SqlParameter("@contactIds", idsToDelete.ToString().Remove(0, 1)));
}
public-void-deleteBatchActivationContacts(IList-id)
{
if(ids==null)返回;
如果(ids.Count==0)返回;
var idsToDelete=新的StringBuilder();
foreach(id中的变量id)
{
AppendFormat(“,{0}”,id);
}
db.Database.ExecuteSqlCommand(“从EmailContactCampaign中删除,其中EmailContact_EmailContactId位于(@contactId)”,
新的SqlParameter(“@contactIds”,idsToDelete.ToString().Remove(0,1));
}

您必须将
表值参数
SqlDbType.Structured
结合使用。我不熟悉编写查询。“你能给我举个例子吗?”哈姆雷特给了你两个很好的关键词,可以用来(重新)搜索你问题的解决方案!只要去谷歌搜索,然后阅读、学习和应用你所学的……我完全同意@marc_;)好的,我有作业了。谢谢你的帮助。:)
Database.ExecuteSqlCommand(string.Format("DELETE FROM CampainContacts WHERE CampaignId in ({0})", idsToDelete.ToString().Remove(0, 1)));