Como obter o próximo id livre de uma tabela MySQL (C# WPF)

Mais uma dica que pode ser útil … mas apenas em monoposto!

Antes de inserir um novo registo, sem recurso ao AUTO_INCREMENT, podemos desejar saber o valor do campo chave, que será obtido incrementando o id de valor mais alto.

Deixo aqui uma forma de o conseguir que, embora pouco sofisticada, faz o serviço.

#region Calcular o próximo id livre
private void mostarBtn_Click(object sender, RoutedEventArgs e)
{
    try
    {
        ligacaoBD.Open();
        string stm = "select max(idContacto) as x from contacto";
        MySqlCommand cmd = new MySqlCommand(stm, ligacaoBD);
        int id;
        Int32.TryParse(cmd.ExecuteScalar().ToString(), out id);
        id++;
        MessageBox.Show("O próximo id é " + id.ToString());
    }
    catch
    {
        MessageBox.Show("Erro!");
    }
        finally
    {
        ligacaoBD.Close();
    }

}
#endregion

Link para download da base de dados e código:

https://app.box.com/s/r1bqtvburr1dknn2455ntzenyadvs6ln

Anúncios

Como percorrer uma Datagrid e mostrar os dados linha a linha (C# WPF)

Neste exemplo vou utilizar uma Datagrid que é carregada a partir de uma tabela MySQL.

O efeito é este:

Quando o botão for pressionado, pretendo aceder a cada campo de cada registo, percorrendo as várias linhas de cima para baixo.

Para cada linha será exibida uma string correspondente à concatenação dos três campos.

No code-behind teremos:

...
private void mostarBtn_Click(object sender, RoutedEventArgs e)
{
    foreach (DataRowView row in dataGridContactos.Items)
    {
        string contacto = row.Row.ItemArray[0].ToString();
        string nome = row.Row.ItemArray[1].ToString();
        string idade = row.Row.ItemArray[2].ToString();
        string registo = contacto + " | " + nome + " | " + idade;
        MessageBox.Show(registo);
    }
}
...

Link para download da base de dados e código:

https://app.box.com/s/a0jezp8boau6tqjd3j6zsovd54jggseg

Utilizando controlos do Extended WPF Toolkit™ Community Edition

Por vezes os controlos padrão disponibilizados para criar a nossa aplicação WPF não correspondem integralmente às nossas necessidades.

Uma primeira alternativa consiste em criar controlos personalizados, o que pode ser uma tarefa complexa para os menos experientes.

A segunda, mais simples, consiste em recorrer a bibliotecas e ferramentas adicionais, como é o caso da que vamos utilizar aqui.

A título de exemplo, vamos supor que desejamos utilizar uma TextBox para ler matrículas de automóveis posteriores a 2007.

Continue reading “Utilizando controlos do Extended WPF Toolkit™ Community Edition”

Slideshow Manual usando C# e WPF

Este exemplo é muito simples e apenas me serviu para testar:

  • carregar imagens para um controlo Image que se encontram organizadas num ResouceDictionary;
  • Selecionar as imagens mediante a utilização de dois botões “anterior” e “seguinte“;
  • Associar uma ação ao botão central, no qual está a ser exibida a imagem, que será diferente dependendo da imagem selecionada.

Continue reading “Slideshow Manual usando C# e WPF”

WPF DropShadowEffect

Uma forma muito simples de aplicar uma sombra a um controlo consiste em utilizar o efeito “DropShadowEffect“.

Este, tal como o “BlurEffect“, vem pré-definido na Framework .NET, sendo muito simples a sua utilização.

<Grid HorizontalAlignment="Center" VerticalAlignment="Center" >
    <StackPanel Orientation="Vertical">
        <Label Content="Efeito Sombra (DropShadowEffect)" FontFamily="Cooper Black" FontSize="50" Foreground="#AA000000" HorizontalAlignment="Center" Margin="10">
            <Label.Effect>
                <DropShadowEffect/>
            </Label.Effect>
        </Label>
        <Button HorizontalAlignment="Center" VerticalAlignment="Center" Content="Botão Com Sombra" Foreground="#FF000000" FontFamily="Cooper Black" FontSize="40" Margin="10" Padding="10"  >
            <Button.Effect>
                <DropShadowEffect />
            </Button.Effect>
        </Button>
    </StackPanel>
</Grid>

Recorrendo ao Blend podemos ter ainda mais efeitos disponíveis, mas estaremos a aumentar a complexidade.

Boas formatações!

Fonte: https://wpf.2000things.com/tag/dropshadoweffect/

WPF Yes/No MessageBox – “O Trump tem um penteado estranho?”

O exemplo seguinte demonstra como usar uma MessageBox para confirmar um determinada operação, como por exemplo, decidir se vamos eliminar definitivamente um registo numa base de dados, ou não.

Neste caso vamos apenas questionar o estilo capilar do mais recente Presidente dos USA.

Ao pressionar o botão surge a pergunta:

Se responder sim faz algo … neste caso chama outra MessageBox:

Caso contrário, também merecemos uma resposta … neste caso:

O código é muito simples:

using System.Windows;

namespace yesOrNoWpfApplication
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void button_Click(object sender, RoutedEventArgs e)
        {
            if (MessageBox.Show("Tem a certeza?", "O Trump tem um penteado estranho.", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
            {
                MessageBox.Show("Pois tem.");
            }
            else
            {
                MessageBox.Show("Ai isso é que tem!");
            }
        }
    }
}

O exemplo pode ser descarregado aqui: https://app.box.com/s/pg6s6m6thi9nz83jz87v6lufh3uwxjfp

Ler mais informações acerca da classe MessageBox.