Caros amigos,
Tenho uma dúvida sobre ADO.NET sou iniciante em C#, gostaria vossa ajuda
Tenho uma aplicação Winform com um datagrid de contas a receber que pode sofrer várias alterações conforme o cliente
desejar e por fim ele clica no botão salvar e todas as alterações são gravadas no bd.
Quando estava usando o Databinding conseguia atualizar normalmente o banco quando era somente uma tabela,
ou seja usava somente um da.Update como abaixo,
mas agora estou usando o inner join e o data adapter não sabe qual tabela deve atualizar,
ocorre o erro: "Dynamic SQl operation is not supported against multiple base tables"
se eu fizer um da.UpdateCommand, como faria para atualizar múltiplas linhas ?
private void btnSalvar_Click(object sender, EventArgs e)
{
this.BindingContext[ds.Tables["CONTASRECEBER"]].EndCurrentEdit();
if (MessageBox.Show("Deseja salvar as alterações?", "CONTASRECEBER", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
ContasReceberSQL cr = new ContasReceberSQL();
try
{
cr.SaveTableContasReceber(ds.Tables["CONTASRECEBER"]);
os dados para poder exibir os códigos dos times criados
CarregarDG();
}
catch (Exception ex)
{
CarregarDG();
em caso de erro, exibo na tela
MessageBox.Show(ex.ToString());
}
}
//codigo da.update
public
ContasReceberSQL()
{
da =
new FbDataAdapter("select T1.ID AS NUMERO_DOC,T3.DESCRICAO AS STATUS,T1.PARCELA,T1.FK_IDVENDEDOR AS CODVEND, "+
"T1.VALORPARCELA,T1.VALORTOTAL,T2.DESCRICAO AS FORMA_PGTO,T1.DATAVCTO AS DATA_VCTO,T1.DATAPGTO AS DATA_PGTO,T1.OBS "+
"from contasreceber AS T1 inner JOIN formaspgto AS T2 inner JOIN SITUACAO AS T3 on T1.FK_FORMAPGTO=T2.ID "+
"on T1.FK_STATUS=T3.ID ", conex.Conectar());
cb =
new FbCommandBuilder(da);
}
public DataTable GetTableContasReceber()
{
DataTable dt = new DataTable( "CONTASRECEBER");
da.Fill(dt);
return dt;
}
public void SaveTableContasReceber(DataTable dt)
{
da.Update(dt);
}
GRATO,