9

我正在使用此视频尝试从 a 填充结果DataGridView,并且收到上述错误。下面的代码与此错误有关 - 我将值传递给存储过程,然后最终SELECT返回DataGridView.

        SqlConnection con = new SqlConnection();
        con.ConnectionString = "integrated security=SSPI;data source=SERV;" + "persist security info=False;initial catalog=DB";

        con.Open();
        SqlCommand select = new SqlCommand("SELECT * FROM Table");
        SqlCommand enter = new SqlCommand("sp_Proc", con);

        // Stored Procedure
        enter.CommandType = CommandType.StoredProcedure;
        enter.Parameters.Add(new SqlParameter("@vvalue", SqlDbType.VarChar)).Value = Convert.ToString(txt1.Text);
        enter.Parameters.Add(new SqlParameter("@dvalue", SqlDbType.Decimal)).Value = Convert.ToDecimal(txt2.Text);
        enter.ExecuteNonQuery();

        // DataGrid returns the SELECT

        SqlDataAdapter sadapt = new SqlDataAdapter(select);
        sadapt.SelectCommand = select;
        DataTable dtab = new DataTable();
        sadapt.Fill(dtab); // generates the error
        BindingSource b = new BindingSource();
        b.DataSource = dtab;
        dGrid.DataSource = b;
        sadapt.Update(dtab);

        con.Close();
4

3 回答 3

18

您没有connectioncommand. 试试这个,

SqlCommand select = new SqlCommand("SELECT * FROM Table", con);
于 2013-06-02T14:27:30.547 回答
2

您正在将连接对象传递给您的输入命令,但没有将连接对象传递给您的选择命令

  SqlCommand select = new SqlCommand("SELECT * FROM Table");
  SqlCommand enter = new SqlCommand("sp_Proc", con);

用这个

SqlCommand select = new SqlCommand("SELECT * FROM Table",con);
于 2013-06-02T14:32:16.580 回答
-2
SqlCommand cmd = new SqlCommand("sp_StockAnalysis2") // connection missing in sqlcommand

SqlCommand cmd = new SqlCommand("sp_StockAnalysis2",Connection())// pass connection
于 2018-10-17T06:48:46.450 回答