存储过程怎么调用的,你就用普通的查询方式来调用呢,比如把SqlCommand的命令写成 exec pro_name 'p1','p2'这样

解决方案 »

  1.   

    1.确认你存储过程和你的一般操作使用的是同一个connectionstring或者说一样的写法,
    2.如2楼,在sqlcommand里面随便调用一个存储过程试试看是否可以执行.
      

  2.   

    1、确认调用 存储过程 和其它正常的数据库操作时使用的是同一个连接2、确认写法没有问题。因为,相同的代码,在调用sql2000时没问题。
    写法如下:        protected Boolean CheckDataDistcint(string dataName,int sumCount,
                int ilength_fw,int ilength_wl,string scode)
            {
                try
                {
                    using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["fwwlConnectionStringAsynchronous"].ConnectionString))
                    {
                        conn.Open();
                        SqlCommand cmd = new SqlCommand();
                        cmd.Connection = conn;
                        cmd.CommandTimeout = 3600;
                        cmd.CommandType = CommandType.StoredProcedure;
                        cmd.CommandText = "CheckDataDistinct";
                        cmd.Parameters.Add("@tableName", SqlDbType.NVarChar, 20);
                        cmd.Parameters.Add("@sumCount", SqlDbType.Int, 4);
                        cmd.Parameters.Add("@ilength_fw", SqlDbType.Int, 4);
                        cmd.Parameters.Add("@ilength_wl", SqlDbType.Int, 4);
                        cmd.Parameters.Add("@scode", SqlDbType.NVarChar, 10);
                        cmd.Parameters["@tableName"].Value = dataName;
                        cmd.Parameters["@sumCount"].Value = sumCount;
                        cmd.Parameters["@ilength_fw"].Value = ilength_fw;
                        cmd.Parameters["@ilength_wl"].Value = ilength_wl;
                        cmd.Parameters["@scode"].Value = scode;                    IAsyncResult result = cmd.BeginExecuteNonQuery();
                        while (!result.IsCompleted)
                        {
                            System.Threading.Thread.Sleep(1000);
                        }
                        cmd.EndExecuteNonQuery(result);
                    }
                    return true;
                }
                catch(Exception ex)
                {
                    FileLog.InsertXml("再调用SqlServer存储过程时遇到错误!,错语原因:"+ex.Message);
                    return false;
                }
            }
      

  3.   

    \\cmd.CommandType = CommandType.StoredProcedure;
                        cmd.CommandText = "CheckDataDistinct '@tableName', ,'..','..'...";