Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法使用存储过程动态填充数据网格视图_C#_Sql_.net_Winforms_Sql Server 2012 - Fatal编程技术网

C# 无法使用存储过程动态填充数据网格视图

C# 无法使用存储过程动态填充数据网格视图,c#,sql,.net,winforms,sql-server-2012,C#,Sql,.net,Winforms,Sql Server 2012,我正在用C#win表单和SQLServer2012编写一个程序。在我的一个表单中,我有一个组合框、一个按钮和一个datagrid视图。我希望每次更改组合框中的值时都填充数据网格视图 此代码不工作:((不返回错误) 您必须使用组合框的事件clik而不是按钮。 只需尝试将此按钮1\u单击事件添加到您拥有的组合框中。在组合框的SelectedIndexChanged事件中设置代码 private void comboBox2_SelectedIndexChanged(object sender, Ev

我正在用C#win表单和SQLServer2012编写一个程序。在我的一个表单中,我有一个组合框、一个按钮和一个datagrid视图。我希望每次更改组合框中的值时都填充数据网格视图

此代码不工作:((不返回错误)


您必须使用组合框的事件
clik
而不是按钮。
只需尝试将此
按钮1\u单击
事件添加到您拥有的组合框中。

在组合框的
SelectedIndexChanged
事件中设置代码

private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            DataSet ptDataset = new DataSet();
            string con = ConfigurationManager.ConnectionStrings["secaloFormulaCS"].ToString();
            SqlConnection sqlCon = new SqlConnection(con);
            sqlCon.Open();
            SqlCommand sqlCmd = new SqlCommand("spDispProductInfo", sqlCon);
            sqlCmd.CommandType = CommandType.StoredProcedure;
            sqlCmd.Parameters.AddWithValue("@id", Convert.ToInt32(comboBox2.SelectedValue.ToString()));
            sqlCmd.ExecuteNonQuery();
            SqlDataAdapter da = new SqlDataAdapter(sqlCmd);
            da.Fill(ptDataset);
            dataGridView2.DataSource = ptDataset;
            sqlCon.Close();

        }
试试这个

    int id = Convert.ToInt32(comboBox2.SelectedValue.ToString());
    //int idc = 100;
    DataSet ptDataset = new DataSet();
    string con = ConfigurationManager.ConnectionStrings["secaloFormulaCS"].ToString(); 
    SqlConnection sqlCon = new SqlConnection(con);
    sqlCon.Open();
    SqlCommand sqlCmd = new SqlCommand("spDispProductInfo", sqlCon);
    sqlCmd.CommandType = CommandType.StoredProcedure;
    sqlCmd.Parameters.AddWithValue("@id", id);
    SqlDataAdapter da = new SqlDataAdapter(sqlCmd);
    da.Fill(ptDataset);
    dataGridView2.DataSource =  ptDataset.Tables[0];
    sqlCon.Close();

确保仅在
(!Page.IsPostBack)
条件上绑定组合框如果确实只需要一个
DataTable
-为什么要使用
DataSet
,然后引用
ptDataset.Tables[0]
?只需从一开始就使用
DataTable
?开销要少得多!
    int id = Convert.ToInt32(comboBox2.SelectedValue.ToString());
    //int idc = 100;
    DataSet ptDataset = new DataSet();
    string con = ConfigurationManager.ConnectionStrings["secaloFormulaCS"].ToString(); 
    SqlConnection sqlCon = new SqlConnection(con);
    sqlCon.Open();
    SqlCommand sqlCmd = new SqlCommand("spDispProductInfo", sqlCon);
    sqlCmd.CommandType = CommandType.StoredProcedure;
    sqlCmd.Parameters.AddWithValue("@id", id);
    SqlDataAdapter da = new SqlDataAdapter(sqlCmd);
    da.Fill(ptDataset);
    dataGridView2.DataSource =  ptDataset.Tables[0];
    sqlCon.Close();