当数据表应该有许多 c#(使用 MySQLDataAdapter)用于数据网格视图时,它只有一行

我在数据网格视图上显示一些数据时遇到问题。我在 form2 上将数据发送到 MySQL,然后它应该显示在 form1 的数据网格视图中。数据网格视图正在完美更新,但似乎数据表没有填充完整信息。应显示 2 行数据。我在数据网格视图中得到 2 个空行。我检查了数据库,信息在那里。是我的查询不对吗?


我需要的是在quotes_idquotes 列中具有temp_quote.quote_id 的所有行。你能帮我吗?这是代码:


public void RefreshGrid_parts()

    {

        ConnectionStringSettings conSettings = ConfigurationManager.ConnectionStrings["shopmanagerConnectionString1"];

        MySqlConnection con = new MySqlConnection(conSettings.ToString());

        con.Open();

        MySqlCommand cmd = new MySqlCommand("select * from shopmanager.parts where quotes_idquotes = '" + temp_quote.quote_id + "';",con);

        DataTable dt = new DataTable();

        MySqlDataAdapter da = new MySqlDataAdapter(cmd);

        da.Fill(dt);


        dataGridView1.AutoGenerateColumns = false;

        dataGridView1.ColumnCount = 6;


        dataGridView1.Columns[0].HeaderText = "# Assembly";

        dataGridView1.Columns[0].DataPropertyName = "assemblies_assembly_id";


        dataGridView1.Columns[1].HeaderText = "# Part";

        dataGridView1.Columns[1].DataPropertyName = "part_number";


        dataGridView1.Columns[2].HeaderText = "# Item";

        dataGridView1.Columns[2].DataPropertyName = "items_items_id";


        dataGridView1.Columns[3].HeaderText = "# Description";

        dataGridView1.Columns[3].DataPropertyName = "part_description";


        dataGridView1.Columns[4].HeaderText = "Drawing Revision";

        dataGridView1.Columns[4].DataPropertyName = "drawing_rev";


        dataGridView1.Columns[5].HeaderText = "Quantity";

        dataGridView1.Columns[5].DataPropertyName = "quantity";


        dataGridView1.DataSource = dt;


        con.Close();

    }


慕妹3242003
浏览 417回答 3
3回答

凤凰求蛊

这是您的属性示例:(是的,它的 mssql 但逻辑是相同的,只是更改类型,我手头没有 mysql 库。我想您会弄清楚的。)SqlClient.SqlCommand comand = new SqlClient.SqlCommand("Select * From ExampleTable Where Colum1 = $1");comand.Parameters.Add(new SqlClient.SqlParameter("$1", "1234") { DbType = DbType.Int32 });这也会将十进制字符串解析为正确的数据类型 (int32)

肥皂起泡泡

尝试注释创建标题的行以测试您的数据是否会出现在 DataGrid 中。还将 AutoGenerateColumns 设置为 true。如果是,请检查 DataPropertyName 是否正是您查询中列的名称。public void RefreshGrid_parts(){    ConnectionStringSettings conSettings = ConfigurationManager.ConnectionStrings["shopmanagerConnectionString1"];    MySqlConnection con = new MySqlConnection(conSettings.ToString());    con.Open();    MySqlCommand cmd = new MySqlCommand("select * from shopmanager.parts where quotes_idquotes = '" + temp_quote.quote_id + "';",con);    DataTable dt = new DataTable();    MySqlDataAdapter da = new MySqlDataAdapter(cmd);    da.Fill(dt);    dataGridView1.AutoGenerateColumns = true;    //dataGridView1.ColumnCount = 6;    //dataGridView1.Columns[0].HeaderText = "# Assembly";    //dataGridView1.Columns[0].DataPropertyName = "assemblies_assembly_id";    //dataGridView1.Columns[1].HeaderText = "# Part";    //dataGridView1.Columns[1].DataPropertyName = "part_number";    //dataGridView1.Columns[2].HeaderText = "# Item";    //dataGridView1.Columns[2].DataPropertyName = "items_items_id";    //dataGridView1.Columns[3].HeaderText = "# Description";    //dataGridView1.Columns[3].DataPropertyName = "part_description";    //dataGridView1.Columns[4].HeaderText = "Drawing Revision";    //dataGridView1.Columns[4].DataPropertyName = "drawing_rev";    //dataGridView1.Columns[5].HeaderText = "Quantity";    //dataGridView1.Columns[5].DataPropertyName = "quantity";    dataGridView1.DataSource = dt;    con.Close();}

千巷猫影

也许采纳 Rodrigos 的建议,让控件生成列。如果您只想更改这六列,只需更改查询。public void RefreshGrid_parts()    {        ConnectionStringSettings conSettings = ConfigurationManager.ConnectionStrings["shopmanagerConnectionString1"];        MySqlConnection con = new MySqlConnection(conSettings.ToString());        con.Open();        MySqlCommand cmd = new MySqlCommand("select assemblies_assembly_id as '# Assembly', part_number as '# Part', items_items_id as '# Item', part_description as '# Description', drawing_rev as 'Drawing Revision', quantity as 'Quantity'  from shopmanager.parts where quotes_idquotes = $1;",con);        cmd.Parameters.Add(new MySqlParameter("$1", temp_quote.quote_id) { DbType = DbType.Int32 });        DataTable dt = new DataTable();        MySqlDataAdapter da = new MySqlDataAdapter(cmd);        da.Fill(dt);        dataGridView1.AutoGenerateColumns = true;        dataGridView1.DataSource = dt;        con.Close();    }
打开App,查看更多内容
随时随地看视频慕课网APP