Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.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# 按钮单击事件时,将数据从DB显示到datagrid视图的预定义列时出错_C#_Winforms - Fatal编程技术网

C# 按钮单击事件时,将数据从DB显示到datagrid视图的预定义列时出错

C# 按钮单击事件时,将数据从DB显示到datagrid视图的预定义列时出错,c#,winforms,C#,Winforms,我正在使用以下代码: string getinputs = "SELECT ir.plu_code PLU_Code,ir.barcode Barcode,ir.product_name Product_Name FROM inventory_register ir,inventory_value iv WHERE ir.dept_id='" + textBox1.Text + "' AND ir.barcode = iv.barcode"; connection.Open(); MySqlD

我正在使用以下代码:

string getinputs = "SELECT ir.plu_code PLU_Code,ir.barcode Barcode,ir.product_name Product_Name  FROM inventory_register ir,inventory_value iv WHERE ir.dept_id='" + textBox1.Text + "' AND ir.barcode = iv.barcode";
connection.Open();
MySqlDataAdapter adapter = new MySqlDataAdapter(getinputs, connection);
MySqlCommandBuilder cmdbuilder = new MySqlCommandBuilder(adapter);
DataTable dt = new DataTable();
adapter.Fill(dt);
BindingSource bindsrc = new BindingSource();
DataGridView datagridv = new DataGridView();
bindsrc.DataSource = dt;
datagridv.DataSource = bindsrc;
connection.Close();
我在
datagridview1
中有三个预定义的列,分别是“
PLU\u code
”、“
Barcode
”和“
Product\u Name

我想在datagridview中显示select查询的结果(多行)。但我没有得到任何

我如何做到这一点

请尝试以下代码:

                string getinputs = "SELECT ir.plu_code PLU_Code,ir.barcode Barcode,ir.product_name Product_Name  FROM inventory_register ir,inventory_value iv WHERE ir.dept_id='" + textBox1.Text + "' AND ir.barcode = iv.barcode";
                connection.Open();

                MySqlDataAdapter dataAdapter = new MySqlDataAdapter(getinputs, connection);
                MySqlCommandBuilder commandBuilder = new MySqlCommandBuilder(dataAdapter);
                DataTable table = new DataTable();
                dataAdapter.Fill(table);

                datagridview1.DataSource = table;

                connection.Close();
string getinputs = "Select Query";
connection.Open();

MySqlCommandBuilder cmdbuilder = new MySqlCommandBuilder(getinputs,connection);
MySqlDataAdapter adapter = new MySqlDataAdapter(cmdbuilder);

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

DataGridView datagridv = new DataGridView();
datagridv.DataSource = dt;

datagridv.DataBind();

connection.Close();
请尝试以下代码:

                string getinputs = "SELECT ir.plu_code PLU_Code,ir.barcode Barcode,ir.product_name Product_Name  FROM inventory_register ir,inventory_value iv WHERE ir.dept_id='" + textBox1.Text + "' AND ir.barcode = iv.barcode";
                connection.Open();

                MySqlDataAdapter dataAdapter = new MySqlDataAdapter(getinputs, connection);
                MySqlCommandBuilder commandBuilder = new MySqlCommandBuilder(dataAdapter);
                DataTable table = new DataTable();
                dataAdapter.Fill(table);

                datagridview1.DataSource = table;

                connection.Close();
string getinputs = "Select Query";
connection.Open();

MySqlCommandBuilder cmdbuilder = new MySqlCommandBuilder(getinputs,connection);
MySqlDataAdapter adapter = new MySqlDataAdapter(cmdbuilder);

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

DataGridView datagridv = new DataGridView();
datagridv.DataSource = dt;

datagridv.DataBind();

connection.Close();

我得到了结果。我使用@user4340666代码实现了两个空行。当我滚动网格时,我发现数据集被添加为新列,而预定义的列单元格为空。所以我只是清理了这些柱子

            dataGridView1.Columns.Clear();
            string getinputs = "SELECT ir.plu_code PLU_Code,ir.barcode Barcode,ir.product_name Product_Name  FROM inventory_register ir,inventory_value iv WHERE ir.dept_id='" + textBox1.Text + "' AND ir.barcode = iv.barcode";
            connection.Open();

            MySqlDataAdapter dataAdapter = new MySqlDataAdapter(getinputs, connection);
            MySqlCommandBuilder commandBuilder = new MySqlCommandBuilder(dataAdapter);
            DataTable table = new DataTable();
            dataAdapter.Fill(table);

            datagridview1.DataSource = table;

            connection.Close();

离题,但:您的代码易受SQL注入攻击。问题是,当我单击按钮时,DataGridView中没有显示行。您确定在执行adpter.Fille(dt)时获得了一些数据吗?@Stefan您的意思是流错误>/没有显示数据@Fabrichi。select查询的结果是两行。在尝试了你的代码之后,我在datagridview中得到了两个空行(单元格中没有数据)好的,尝试在SQL语句中使用参数,意思是说“cmd.parameters.add”?