方法没有按预期进行

时间:2016-10-24 22:04:36

标签: c# asp.net web-services

我正在尝试在MSSQL存储过程中执行查询,为此我使用,javascript,ajax和C#,这是我的代码(javascript和ajax只是将参数发送到我的C#WebService并且工作正常,问题出在我的db方法或我的webservice代码中):

WebService

[WebMethod]
public string RegistrarInspeccion(int id, string partNumber, string inspectionDate, string data, string data2, int newId)
{
   string respuesta = "Error";

   try
   {
       Inspection ins = new Inspection(id, partNumber, inspectionDate, data, data2, newId);
       int resp = conn.RegistrarInspeccion(ins);

       if (resp > 0)
          respuesta = "Good Job";
       else
          respuesta = "Something happen ....";
   }
   catch (Exception ex)
   {
      respuesta = "Error: " + ex.Message;
   }
    return respuesta;
}

DB_Class

public int RegistrarInspeccion(Inspection ins)
{
   int res = 0;
   SqlCommand cmd = new SqlCommand("InsertInspection", conn);
   try
   {
     Open();
     cmd.CommandType = CommandType.StoredProcedure;
     cmd.Parameters.AddWithValue("@partNumber", ins.PartNumber);
     cmd.Parameters.AddWithValue("@inspectionDate", ins.InspectionDate);
     cmd.Parameters.AddWithValue("@data", ins.Data);
     cmd.Parameters.AddWithValue("@data2", ins.Data2);
     cmd.Parameters.AddWithValue("@NewId", ins.NewId);

     res = cmd.ExecuteNonQuery();

   }

   finally
   {
      Close();
   }
   return res;    
}

我没有收到任何错误,只是我总是得到“respuesta = "Something happen ....";消息,我不知道可能是什么问题,也许我的db代码没有正确执行?我该怎么做才能解决这个问题?提前谢谢。

我尝试将respuesta = "Something happen ....";更改为respuesta = resp.toString();,现在我的结果为-1。

1 个答案:

答案 0 :(得分:0)

https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery(v=vs.110).aspx

检查您的SQL

对于UPDATE,INSERT和DELETE语句,返回值是受命令影响的行数。当插入或更新的表上存在触发器时,返回值包括插入或更新操作影响的行数以及受触发器或触发器影响的行数。 对于所有其他类型的语句,返回值为-1。如果发生回滚,则返回值也为-1。