日期:2014-05-18  浏览次数:20844 次

请教个C#调用存储过程的奇怪问题?
在数据量较小的情况调用compute0存储过程都没问题, 但在数据量稍大的情况下在C#中运行却会有错误,
奇怪的是在查询分析器里该存储过程都没问题, 遇上这种问题该怎么调试呢?

  public bool JS01(ref SqlConnection myConn, ref string ci)
  {
  SqlCommand JS01 = new SqlCommand("compute0", myConn);
  JS01.CommandType = CommandType.StoredProcedure;
  JS01.Parameters.AddWithValue("@cisu", ci);
  try
  {
  JS01.ExecuteNonQuery();
  }
  catch
  {
  return false;
  }

  return true;
  }


  Curr1 step1 = new Curr1();

  if (!step1.JS01(ref myConn, ref ci1)) //存储过程为compute0
  {
  MessageBox.Show("计算第" + i.ToString() + "次失败!", "Error");
  button15.Enabled = true;
  return;
  }  






------解决方案--------------------
给个错误提示!
------解决方案--------------------
写一个Sql 2005的数据库项目,自己调试

------解决方案--------------------
以前遇到是超时

------解决方案--------------------
设置CommandTimeout:

 SqlCommand JS01 = new SqlCommand("compute0", myConn); 
JS01.CommandType = CommandType.StoredProcedure; 

JS01.CommandTimeout=999999;

------解决方案--------------------
超時問題把timeout改為0