C# 正在混淆SqlDataAdapter和SqlCommand

C# 正在混淆SqlDataAdapter和SqlCommand,c#,sql-server,ado.net,C#,Sql Server,Ado.net,我有一个调用方法: public string RunReportSteps(int _reportKey) { DataTable fStepsTable; fStepsTable = GetStepsTable("xxx.console.pr_xxx"); return (string)fStepsTable.Rows[1][3]; } 它调用此私有方法: private DataTable GetStepsTable(string procName) {

我有一个调用方法:

public string RunReportSteps(int _reportKey) {
    DataTable fStepsTable;
    fStepsTable =  GetStepsTable("xxx.console.pr_xxx");
    return (string)fStepsTable.Rows[1][3];
}
它调用此私有方法:

private DataTable GetStepsTable(string procName) {
    var connectionString = ConfigurationManager.ConnectionStrings["xxx"].ConnectionString;
    using(var conn = new SqlConnection(connectionString))
    using(var adapt = new SqlDataAdapter())
    using(var cmd = new SqlCommand(procName, conn)) {

        conn.Open();

        SqlParameter p = new SqlParameter("@ReportKey", this.ReportKey);
        p.Direction = ParameterDirection.Input;
        cmd.Parameters.Add(p);
        adapt.SelectCommand = cmd;

        DataSet mySet = new DataSet();
        adapt.Fill(mySet);     //<<<<<<<<<<<<<<<<<<<errors here
        return mySet.Tables[0];
    }
}
私有数据表GetStepsTable(字符串procName){
var connectionString=ConfigurationManager.ConnectionStrings[“xxx”].connectionString;
使用(var conn=newsqlconnection(connectionString))
使用(var adapt=new SqlDataAdapter())
使用(var cmd=new SqlCommand(procName,conn)){
conn.Open();
SqlParameter p=新的SqlParameter(“@ReportKey”,this.ReportKey);
p、 方向=参数方向。输入;
cmd.Parameters.Add(p);
adapt.SelectCommand=cmd;
数据集mySet=新数据集();

adapt.Fill(mySet);//我假定
procName
是存储过程的名称。您尚未将SqlCommand的值设置为
StoredProcedure

using(var conn = new SqlConnection(connectionString))
using(var cmd = new SqlCommand(procName, conn))
using(var adapt = new SqlDataAdapter(cmd)) {
    cmd.CommandType = CommandType.StoredProcedure; // <<< this was missing

    SqlParameter p = new SqlParameter("@ReportKey", this.ReportKey);
    p.Direction = ParameterDirection.Input;
    cmd.Parameters.Add(p);

    DataTable table = new DataTable();
    adapt.Fill(table);     
    return table;
}
使用(var conn=new SqlConnection(connectionString))
使用(var cmd=new SqlCommand(procName,conn))
使用(var adapt=newsqldataadapter(cmd)){

cmd.CommandType=CommandType.StoredProcedure;//我假定
procName
是存储过程的名称。您尚未将SqlCommand的值设置为
StoredProcedure

using(var conn = new SqlConnection(connectionString))
using(var cmd = new SqlCommand(procName, conn))
using(var adapt = new SqlDataAdapter(cmd)) {
    cmd.CommandType = CommandType.StoredProcedure; // <<< this was missing

    SqlParameter p = new SqlParameter("@ReportKey", this.ReportKey);
    p.Direction = ParameterDirection.Input;
    cmd.Parameters.Add(p);

    DataTable table = new DataTable();
    adapt.Fill(table);     
    return table;
}
使用(var conn=new SqlConnection(connectionString))
使用(var cmd=new SqlCommand(procName,conn))
使用(var adapt=newsqldataadapter(cmd)){

cmd.CommandType=CommandType.StoredProcedure;//我不知道它是否是问题的根源,但您是否应该指定您正在使用一个存储过程?我不知道它是否是问题的根源,但您是否应该指定您正在使用一个存储过程?谢谢…+我对数据集没有真正的需求;+我混淆了ada的顺序pter和sqlcommand!@whytheq:还请注意,您不需要手动打开连接,因为
DataAdapter
将在中为您打开连接。谢谢…+我对数据集没有实际需要;+我混淆了适配器和sqlcommand的顺序!@whytheq:还请注意,由于
DataAdap,您不需要手动打开连接ter
将在中为您完成此操作。