使用mysql参数时未填充Datagrid视图

时间:2018-10-09 20:54:53

标签: c# mysql datagridview parameters

我的想法是问题出在适配器上。但是,我仍然很环保,希望能对您有所帮助。我已经搜索了这个论坛,但对我找到的任何解决方案都不太满意(可能是pebkac)。该应用程序很简单,可以在参数化的select语句中使用文本框输入来填充datagridview。查询将执行,但网格保持空白。 VS2017,MySql8.0

private void button2_Click(object sender, EventArgs e)
    {
        string myConnectionstring = null;
        string mySelect = "SELECT * FROM part_data WHERE 'SERIAL' = @test; ";
        string tb7 = textBox7.Text;
        //Set Connection String And Create Connection
        myConnectionstring = "server=localhost;user= admin; database= trace;port=3306;password= admin;Allow User Variables=True";

        DataSet ds = new DataSet();

        using (MySqlConnection myConnection = new MySqlConnection(myConnectionstring))
        {   //Create Command Object
            //MySqlCommand myCommand = new MySqlCommand(mySelect, myConnection);



            try
            {
                myConnection.Open();
               // myCommand.Prepare();
                //myCommand.Parameters.AddWithValue("@test",tb7);
                MySqlDataAdapter adapter = new MySqlDataAdapter(mySelect, myConnectionstring);
                adapter.SelectCommand.Parameters.AddWithValue("@test",tb7);
                //debug to see final select statement
                richTextBox1.Text = mySelect;


                adapter.Fill(ds);
                dataGridView1.DataSource = ds.Tables[0];
            }
            catch (Exception ex)
            { 
                MessageBox.Show("Query Failed" + ex);
            }


        }

2 个答案:

答案 0 :(得分:0)

乍看之下,您的查询似乎很糟糕。尝试在列名周围使用反引号。

SELECT * FROM part_data WHERE `SERIAL` = @test; 

答案 1 :(得分:0)

尝试在不使用参数的情况下进行查询,则无需这样做,然后尝试数据集的DataSourceView。