为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
慕妹3242003 2021-12-25 18:21:12
我在数据网格视图上显示一些数据时遇到问题。我在 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();    }
查看完整描述

3 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

这是您的属性示例:(是的,它的 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)


查看完整回答
反对 回复 2021-12-25
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

尝试注释创建标题的行以测试您的数据是否会出现在 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();

}


查看完整回答
反对 回复 2021-12-25
?
千巷猫影

TA贡献1829条经验 获得超7个赞

也许采纳 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();

    }


查看完整回答
反对 回复 2021-12-25
  • 3 回答
  • 0 关注
  • 416 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号