创建新的SqlDataAdapter时出现C#InvalidOperationException

时间:2017-03-10 01:06:30

标签: c# sql-server

我写了一些代码来建立与SQL Server的连接,然后执行select过程从SQL服务器中的数据表中获取所有数据,但它在声明一个新的SqlDataAdapter命令时抛出一个InvalidOperationException,请帮帮我修复此错误。

vw_Upcoming_Work

}

2 个答案:

答案 0 :(得分:2)

你应该:

cmd.CommandText = "your Stored Procedure here.";
cmd.CommandType = CommandType.StoredProcedure;
//input parameter of cmd
if (para != null)
cmd.Parameters.AddRange(para);
//create dataAdapter object

con.Open();置于

之上

请看一下这个步骤

 DataTable dt = new DataTable();
 using (SqlConnection con = new SqlConnection(connectionString))
 {
     con.Open();
      using (SqlCommand cmd = con.CreateCommand())
      {
       //sample stored procedure with parameter:
       // "exec yourstoredProcedureName '" + param1+ "','" + param2+ "'";
       cmd.CommandText = "Your Stored Procedure Here";
       cmd.CommandType =CommandType.StoredProcedure;
       using (SqlDataAdapter adp = new SqlDataAdapter(cmd))
        {
            adp.Fill(dt);
             return dt;
        }
      }
  }

答案 1 :(得分:1)

在这里清理你的代码:

public DataTable SelectAll(string procName, SqlParameter[] para = null)
        {
            DataTable dt = new DataTable();
            try
            {
                using (SqlConnection con = new SqlConnection(connString))
                {
                    con.Open();

                    using (SqlCommand cmd = new SqlCommand(procName, con))
                    {
                        cmd.CommandType = CommandType.StoredProcedure;
                        if (para != null)
                            cmd.Parameters.AddRange(para);

                        using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                        {

                            da.Fill(dt);
                        }
                    }
                }
            }
            catch (Exception sqlEx)
            {
                Console.WriteLine(@":Unable to establish a connection: {0}", sqlEx);
            }

            return dt;

        }