插入datagridview或datatable中的数据



好吧,两天后,我从表中获得了网格和最大id,现在是新问题:如何在数据表dtprodisp上的网格视图中插入所有产品我插入了第一个产品,但不知道如何处理循环,也不重复任何已经插入的产品

private void Btngravar_Click(object sender, EventArgs e)
{
MySqlConnection conn = new MySqlConnection("ConnectionString");

conn.Open();
MySqlCommand objcmd = new MySqlCommand("insert into dispensacao (DESTINATARIO,COD_UNIDADE,COD_DEPARTAMENTO,DATA,SOLICITANTE,DEFERIDO_POR) values(?,?,?,?,?,?)", conn);
objcmd.Parameters.Add("@DESTINATARIO", MySqlDbType.VarChar, 45).Value = Cmbdestinatario.Text;

objcmd.Parameters.AddWithValue("@COD_UNIDADE", string.IsNullOrEmpty(Txtcodigounidade.Text) ? (object)DBNull.Value : Txtcodigounidade.Text);
objcmd.Parameters.AddWithValue("@COD_DEPARTAMENTO", string.IsNullOrEmpty(Txtcodigodep.Text) ? (object)DBNull.Value : Txtcodigodep.Text);

DateTime fdate = DateTime.Parse(Txtdata.Text);           
objcmd.Parameters.Add("@DATA", MySqlDbType.DateTime).Value = fdate;
objcmd.Parameters.Add("@SOLICITANTE", MySqlDbType.VarChar, 45).Value = Txtsolicitante.Text;
objcmd.Parameters.Add("@DEFERIDO_POR", MySqlDbType.VarChar, 45).Value = Txtdeferido.Text;
objcmd.ExecuteNonQuery();
conn.Close();
conn.Open();

objcmd = new MySqlCommand("insert into produtos_disp(CODIGO_DISP,PRODUTO,QUANTIDADE,CODIGO_PROD) values (?,?,?,?)", conn);
objcmd.Parameters.AddWithValue("@CODIGO_DISP", Cmbid.Text);
objcmd.Parameters.AddWithValue("@PRODUTIO", dtproddisp.Rows[0]["descricao"]);
objcmd.Parameters.AddWithValue("@QUANTIDADE", dtproddisp.Rows[0]["quantidade"]);
objcmd.Parameters.AddWithValue("@COD_PRODUTO", dtproddisp.Rows[0]["codigo"]);

objcmd.ExecuteNonQuery();       

this.Close();
}

这是代码,适用于第一排

dtproddisp.Rows.Add(Txtcodigopro.Text, Txtproduto.Text, Txtquantidade.Text); 

我需要改变吗?将数据添加到dtprodisp DataTable的代码由于某种原因没有得到codigo,几分钟前就在工作,我没有更改任何内容:

private void Btnaddproduto_Click(object sender, EventArgs e)
{
dtproddisp.Rows.Add(Txtcodigopro.Text, Txtproduto.Text, Txtquantidade.Text);
Gridprodutos.DataSource = dtproddisp;
}

其他两个领域都在发挥作用代码以获得";DESRICAO";以及";CODIGO":

private void Txtproduto_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
MySqlConnection connection = new MySqlConnection("connectionString");
string selectQuery = "select descricao,codigo from produtos where barras =" + (Txtproduto.Text);
connection.Open();
MySqlCommand command = new MySqlCommand(selectQuery, connection);               

MySqlDataReader reader = command.ExecuteReader();
if(reader.Read())
{
Txtproduto.Text = reader.GetString("DESCRICAO");
Txtcodigopro.Text = reader.GetString("CODIGO");
}


}
}

几周后,我终于找到了让它发挥作用的方法;

for (int i = 0; i < dtproddisp.Rows.Count; i++)
{
objcmd = new MySqlCommand("insert into produtos_disp(CODIGO_DISP,PRODUTO,QUANTIDADE,CODIGO_PROD) values (?,?,?,?)", conn);

objcmd.Parameters.AddWithValue("@CODIGO_DISP", Cmbid.Text);
objcmd.Parameters.AddWithValue("@PRODUTIO", dtproddisp.Rows[i]["descricao"]);
objcmd.Parameters.AddWithValue("@QUANTIDADE", dtproddisp.Rows[i]["quantidade"]);
objcmd.Parameters.AddWithValue("@COD_PRODUTO", dtproddisp.Rows[i]["codigo"]);
objcmd.ExecuteNonQuery();
}

如果其他人也有同样的问题,我已经发布了我的解决方案现在我需要打磨它,需要从表中获得最大id,现在我正在使用带有desc顺序的组合框来获得它,但我相信有更好的方法可以做到

最新更新