gpt4 book ai didi

c# - 在 C# 中将 MySQL 表连接到 DataGridView 控件

转载 作者:行者123 更新时间:2023-11-29 21:02:56 25 4
gpt4 key购买 nike

我正在开发一个项目,需要在 C# 中使用 datagridview我想做一个测试,当我通过产品编号搜索产品时,如果编号不正确,则会显示错误,在我的情况下效果很好,如果编号正确,则会显示相关信息datagridview 中的这个产品不起作用,当我输入正确的数字时它什么也没有给我。这是代码,请帮助我

private MySqlDataAdapter mySqlDataAdapter;
private void button1_Click(object sender, EventArgs e)
{
int n = Convert.ToInt32(t_ref.Text);

string cs = "datasource=localhost;port=3306;database=stock;username=root;password=;";

MySqlConnection con = new MySqlConnection(cs);
try
{
con.Open();
}
catch (Exception)
{
MessageBox.Show("Erreur de connexion à la base de donnée !", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);

}

string query = "select * from produits where reference = " + n + "; ";
MySqlCommand cmd = new MySqlCommand(query, con);
MySqlDataReader dr = cmd.ExecuteReader();

if (dr.Read())
{
dg2.DataSource =dr;

}
else
{
MessageBox.Show("Aucun élément avec ce reférence a été trouvé !", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
}
}

最佳答案

使用 MySqlDataReader 填充 DataTable 并使用 DataTable 作为数据源

string query = "select * from produits where reference = @num";
MySqlCommand cmd = new MySqlCommand(query, con);
cmd.Parameters.Add("@num", MySqlDbType.VarChar).Value = n;
DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader())

if (dt.Rows.Count > 0)
{
dg2.DataSource =dt;

}
else
{
MessageBox.Show("Aucun élément avec ce reférence a été trouvé !", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
}

另请注意,查询文本应始终使用参数构建,而不是将字符串连接在一起。如果您将用户收到的字符串连接在一起,对于恶意用户来说太容易编写一些可能会破坏您的数据库或泄露用户名和密码等 secret 信息的内容。

See this famous comic by XKCD

另一个重要的一点是

 dg2.AutoGenerateColumns = true;

关于c# - 在 C# 中将 MySQL 表连接到 DataGridView 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37060794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com