我想要更新,如果我调用填充网格的搜索方法,并在其第二和第三列的反转值之后调用Update方法并在SQL Server上更新,则需要更新。
例如:
点击搜索按钮,填充网格:
Jhon 2 3
Snow 4 5
怀特6 7
点击更新按钮,然后再次点击搜索按钮
Jhon 3 2
Snow 5 4
怀特7 6
public void Update(int param_idficha, int param_rgp, int param_quant, double param_peso, string param_date, string param_peixe)
{
vsql = "UPDATE cadastro SET PESO = @PESO, QUANTIDADE = @QUANTIDADE WHERE ID_FICHA = @ID_FICHA and PEIXE LIKE @PEIXE";
SqlCommand objcmd = null;
if (this.Conectar())
{
try
{
DateTime dtParam = DateTime.Parse(param_date);
objcmd = new SqlCommand(vsql, objCon);
objcmd.Parameters.Add(new SqlParameter("@ID_FICHA", param_idficha));
objcmd.Parameters.Add(new SqlParameter("@RGP", param_rgp));
objcmd.Parameters.Add(new SqlParameter("@PEIXE", param_peixe));
objcmd.Parameters.Add(new SqlParameter("@PESO", param_peso));
objcmd.Parameters.Add(new SqlParameter("@QUANTIDADE", param_quant));
objcmd.Parameters.Add(new SqlParameter("@DATA_REGISTRO", dtParam));
objcmd.ExecuteNonQuery();
}
catch
{
throw;
}
finally
{
this.Desconectar();
}
}
}
搜索和填充网格方法:
private void btn_Search_Click(object sender, EventArgs e)
{
if (txtb_idFicha.Text.Length > 0)
{
int i = Convert.ToInt32(txtb_idFicha.Text);
_peixe_list.Clear();
_peso_list.Clear();
_quant_list.Clear();
objSQL.Search_IDFicha(i, _peixe_list, _quant_list, _peso_list);
dataGridView1.Rows.Clear();
for (int j = 0; j < _peixe_list.Count; j++)
{
string[] rows = { _peixe_list[j], _quant_list[j], _peso_list[j] };
dataGridView1.Rows.Add(rows);
}
}
else
MessageBox.Show("Preencha o campo N° Ficha", " ", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
更新方法:
private void btn_Update_Click(object sender, EventArgs e)
{
int param_id = Convert.ToInt32(txtb_idFicha.Text);
int param_rgp = Convert.ToInt32(txtb_RGP.Text);
string DateTimesql = myDateTime.ToString("dd-MM-yyyy");
_peixe_list.Clear();
_quant_list.Clear();
_peso_list.Clear();
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (row.Cells.Count >= 2 && row.Cells[0].Value != null)
{
_peixe_list.Add(row.Cells[0].Value.ToString());
_peso_list.Add(row.Cells[1].Value.ToString());
_quant_list.Add(row.Cells[2].Value.ToString());
}
}
for (int x = 0; x < _peixe_list.Count; x++)
objSQL.Update(param_id, param_rgp, Convert.ToInt32(_quant_list[x]), Convert.ToDouble(_peso_list[x]), DateTimesql, _peixe_list[x]);
}
答案 0 :(得分:0)
如果我理解正确,您可以执行以下操作来完成任务。
我假设搜索按钮填充网格运行正常。比更新
而不是
objSQL.Search_IDFicha(i, _peixe_list, _quant_list, _peso_list);
dataGridView1.Rows.Clear();
for (int j = 0; j < _peixe_list.Count; j++)
{
string[] rows = { _peixe_list[j], _peso_list[j], _quant_list[j] };
dataGridView1.Rows.Add(rows);
}
你可以做同样的事情,你在搜索中做的但是
的变化很小for (int x = 0; x < _peixe_list.Count; x++)
objSQL.Update(param_id, param_rgp, Convert.ToDouble(_peso_list[x]), Convert.ToInt32(_quant_list[x]), DateTimesql, _peixe_list[x]);
这里我们重新排序了第二和第三列,为了保存,我们将再次遵循相同的更新程序
=>