DataContext.ExecuteQuery参数问题

时间:2016-10-18 16:20:56

标签: c# linq datacontext system.data

我收到以下错误:

  

过程或函数'procTestReport'需要参数'@StartDate',   没有提供。

当我执行以下代码时:

dp solution goes here :-

#include<iostream>


using namespace std;

int dp[102][902][2] ;
void print_ans(int m , int s , int flag){
    if(m==0)
        return ;
    cout<<dp[m][s][flag];
    if(dp[m][s][flag]!=-1)
        print_ans(m-1 , s-dp[m][s][flag] , flag );
    return ;
}
int main(){
    //freopen("problem.in","r",stdin);
    //freopen("out.txt","w",stdout);
    //int t;
    //cin>>t;
    //while(t--){
    int m , s ;
    cin>>m>>s;
    if(s==0){
        cout<<(m==1?"0 0":"-1 -1");
        return 0;
    }
    for(int i = 0 ; i <=m ; i++){
        for(int j=0 ; j<=s ;j++){
            dp[i][j][0]=-1;
            dp[i][j][1]=-1;
        }
    }
    for(int i = 0 ; i < 10 ; i++){
        dp[1][i][0]=i;
        dp[1][i][1]=i;
    }
    for(int i = 2 ; i<=m ; i++){
        for(int j = 0 ; j<=s ; j++){
            int flag = -1;
            int f = -1;
            for(int k = 0 ; k <= 9 ; k++){
                if(i==m&&k==0)
                    continue;
                if( j>=k && flag==-1 && dp[i-1][j-k][0]!=-1)
                    flag = k;
            }
            for(int k = 9 ; k >=0 ;k--){
                if(i==m&&k==0)
                    continue;
                if( j>=k && f==-1 && dp[i-1][j-k][1]!=-1)
                    f = k;
            }
            dp[i][j][0]=flag;
            dp[i][j][1]=f;
        }
    }
    if(m!=0){
        print_ans(m , s , 0);
        cout<<" ";
        print_ans(m,s,1);
    }
    else
        cout<<"-1 -1";
        cout<<endl;
//  }
}

我传递的参数应该以不同的方式呈现吗?从以下链接看起来我正确使用它: https://msdn.microsoft.com/en-us/library/bb361109.aspx

2 个答案:

答案 0 :(得分:3)

您需要在sql语句中声明参数。例如:

lst = dbContext.ExecuteQuery<Summary>("EXEC dbo.procTestReport @StartDate={0}, @EndDate={1}", args).ToList<Summary>();

答案 1 :(得分:0)

如果您需要执行存储过程,可以改为使用:

SqlConnection con = new SqlConnection("your ConnectionString");

SqlCommand cmd = new SqlCommand("your SP_Name", con);
cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.Add(new SqlParameter("param name", "param value"));
cmd.Parameters.Add(new SqlParameter("param2 name", "param2 value"));
.
.
.
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
con.Close();

SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);

return dt;

dt包含存储过程的返回。

如果需要使用LinQ,请尝试使用

dataContext.ExecuteCommand("EXEC usp_SomeProcedure {0}, {1}, {2}", param1, param2, param3);