Northwind的Employee Sales by Country存储过程,如果如下写
SqlCommand SqlCmd = new SqlCommand("Exec Employee Sales by Country N'1996',N'1998'", SqlConn);
是正确的
想把N'1996'当作参数传进去该怎么办.下面是我的程序,通不过去,请高手们指点一下.
               SqlConn.Open();
               SqlParameter SqlParaBeginDate = new SqlParameter("@Beginning_Date", SqlDbType.DateTime);
                SqlParaBeginDate.Value = DateTime.Parse("N'1996'");
                SqlParaBeginDate.Direction = ParameterDirection.Input;                SqlParameter SqlParaEndDate = new SqlParameter("@Ending_Date", SqlDbType.DateTime);
                SqlParaEndDate.Value = DateTime.Parse("N'1998'");
                SqlParaEndDate.Direction = ParameterDirection.Input;                SqlParameter SqlParaOutput = new SqlParameter("@return_value", SqlDbType.Int);
                SqlParaOutput.Direction = ParameterDirection.ReturnValue;
                SqlCommand SqlCmd = new SqlCommand("Employee Sales by CountrySql",Conn);
                SqlCmd.Parameters.Add(SqlParaBeginDate);
                SqlCmd.Parameters.Add(SqlParaEndDate);
                SqlCmd.Parameters.Add(SqlParaOutput);
                SqlCmd.CommandType = CommandType.StoredProcedure;             
                SqlCmd.CommandType = CommandType.Text;
                SqlDataAdapter SqlAdapt = new SqlDataAdapter(SqlCmd); 
                DataSet Ds =  new DataSet();
                SqlAdapt.Fill(Ds);
                this.GridView1.DataSource = Ds;
                this.GridView1.DataBind();

解决方案 »

  1.   

    前面这个参数赋值的是Nvarchar类型Exec Employee Sales by Country N'1996',N'1998'而你后面程序中赋值的是DateTime类型                SqlParameter SqlParaBeginDate = new SqlParameter("@Beginning_Date", SqlDbType.DateTime); 
                    SqlParaBeginDate.Value = DateTime.Parse("N'1996'"); 
                    SqlParaBeginDate.Direction = ParameterDirection.Input;                 SqlParameter SqlParaEndDate = new SqlParameter("@Ending_Date", SqlDbType.DateTime); 
                    SqlParaEndDate.Value = DateTime.Parse("N'1998'"); 
                    SqlParaEndDate.Direction = ParameterDirection.Input; 
    你把参数类型换成Nvarchar类型试试!
      

  2.   

    string s ="1998" 
    DateTime.Parse(s.ToString(   "yyyy"   ) ;不带N就这样可以