我使用以下方法计算数据:
public static int PrepareData(int year, int month, int calcYear)
{
using (IfxConnection con = new IfxConnection(ConfigurationManager.ConnectionStrings["testable"].ToString()))
{
int res = 0;
StringBuilder cmdTxt = new StringBuilder();
cmdTxt.Append(" hk_calc_data ");
using (var myIfxCmd = new IfxCommand(cmdTxt.ToString(), con))
{
myIfxCmd.CommandType = CommandType.StoredProcedure;
myIfxCmd.Parameters.Add("p_year", IfxType.Integer);
myIfxCmd.Parameters.Add("p_month", IfxType.Integer);
myIfxCmd.Parameters.Add("p_calc_year", IfxType.Integer);
if (con.State == ConnectionState.Closed)
{
con.Open();
}
myIfxCmd.Parameters[0].Value = year;
myIfxCmd.Parameters[1].Value = month;
myIfxCmd.Parameters[2].Value = calcYear;
myIfxCmd.CommandTimeout = 1000;
res = myIfxCmd.ExecuteNonQuery();
}
con.Close();
con.Dispose();
return res;
}
}
它不需要时间,总是返回-1
!虽然当我在SQL编辑器中使用相同的参数运行它时,它需要大约4分钟才能完成并返回1
作为结果!
答案 0 :(得分:1)
也许先尝试清除params,然后使用Add添加值。
if (con.State == ConnectionState.Closed)
{
con.Open();
}
myIfxCmd.Parameters.Clear();
myIfxCmd.Parameters.Add("p_year", IfxType.Integer, year);
myIfxCmd.Parameters.Add("p_month", IfxType.Integer, month);
myIfxCmd.Parameters.Add("p_calc_year", IfxType.Integer, calcYear);