大家好!
代码如下:
public void GetCompany(string companyId)
        {
            SqlParameter[] values = new SqlParameter[]
            {
                new SqlParameter(PARAM_COMPANY_ID, companyId)
            };            DataTable dtResult = SQLDBUtil.GetDataSetByProcedure(PRO_GET_WATER_HISTORY, values);        }
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'proTest' AND type = 'P')   
DROP PROCEDURE proTest 
GOCREATE PROCEDURE proTest
@company_Id VARCHAR(2)
AS
BEGIN
SELECT * FROM Company WHERE company_Id = @company_Id;
ENDexec proTest '01';
错误提示: "'proTest' 附近有语法错误。"
首先,这存储过程是可以执行的.但是用C#调用,就报存储过程名字附近有语法错误.另外,如果C#里不传参数,是没问题的.这是什么问题?请大家指教,谢谢!

解决方案 »

  1.   

    检查SQLDBUtil.GetDataSetByProcedure方法
      

  2.   

    GetDataSetByProcedure
    贴出来啊
      

  3.   


    public static DataTable GetDataSetByProcedure(string procedureName, params SqlParameter[] values)
            {
                SqlDataAdapter sda = null;
                DataSet ds = null;
                SqlCommand cmd = null;            try
                {                ds = new DataSet();
                    cmd = new SqlCommand(procedureName, Con);
                    cmd.CommandTimeout = 120;
                    cmd.Parameters.AddRange(values);
                    sda = new SqlDataAdapter(cmd);
                    sda.SelectCommand.CommandTimeout = 120;
                    sda.Fill(ds);
                    return ds.Tables[0];
                }
                catch (Exception e)
                {
                    //Log.AddErr(e);
                    return null;
                }
                finally
                {
                    if (null != ds)
                    {
                        ds.Dispose();
                    }
                    if (null != sda)
                    {
                        sda.Dispose();
                    }
                    if (null != cmd)
                    {
                        cmd.Dispose();
                    }
                    if (Con.State == ConnectionState.Open)
                    {
                        Con.Close();
                    }
                }        }
      

  4.   


    PROCEDURE里哪里换行有问题?
      

  5.   

    调用其他存储过程是否正确
    public static DataTable RunProcedureTable(string storedProcName, IDataParameter[] parameters)
            {
                using (SqlConnection con = new SqlConnection(connectionString))
                {
                    con.Open();
                    DataSet dsSet = new DataSet();
                    SqlDataAdapter sqlDa = new SqlDataAdapter(storedProcName, con);
                    sqlDa.SelectCommand.CommandType = CommandType.StoredProcedure;
                    sqlDa.SelectCommand.Parameters.AddRange(parameters);
                    sqlDa.Fill(dsSet);
                    return dsSet.Tables[0];
                }
            }
      

  6.   

    检查出来了,晕si...低级错误, 少了一句CommandType.StoredProcedure;
    哎...做到头晕了!谢谢几位!