我的想法是问题出在适配器上。但是,我仍然很环保,希望能对您有所帮助。我已经搜索了这个论坛,但对我找到的任何解决方案都不太满意(可能是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);
}
}
答案 0 :(得分:0)
乍看之下,您的查询似乎很糟糕。尝试在列名周围使用反引号。
SELECT * FROM part_data WHERE `SERIAL` = @test;
答案 1 :(得分:0)
尝试在不使用参数的情况下进行查询,则无需这样做,然后尝试数据集的DataSourceView。