terça-feira, 9 de abril de 2024

Como inserir novos valores a uma consulta e popular uma comboBox?

O código as seguir é apenas um modelo ou exemplo para estudo. Se for utilizar no seu código, é válido fazer modificações. Estou usando este exemplo para popular uma comboBox adicionando uma linha no início.


string strBanco = Properties.Settings.Default.banco;


SqlConnection strCon = new SqlConnection(strBanco);

DataSet ds = new DataSet();

strCon.Open();


string consulta = "SELECT MedicoID, MedicoNome" +

    " FROM Medico" +

    " ORDER BY MedicoNome";


SqlCommand strCom = new SqlCommand(consulta, strCon);


SqlDataAdapter adapter = new SqlDataAdapter(strCom);


adapter.Fill(ds, "Geral_CadastroPacienteMedico");


strCon.Close();


DataTable dt = new DataTable();

dt.Columns.Add("Name", typeof(string));

adapter.Fill(dt);


DataRow row = dt.NewRow();


row["MedicoID"] = 1;

row["MedicoNome"] = "-- SELECIONE --";

dt.Rows.InsertAt(row, 0);


comboBox_Medico.DataSource = dt;

comboBox_Medico.ValueMember = "MedicoID";

comboBox_Medico.DisplayMember = "MedicoNome";

sexta-feira, 8 de março de 2024

VERIFICAR SE A STRING CONTÉM APENAS LETRA

Regex.IsMatch Método

Indica se a expressão regular encontra uma correspondência na cadeia de caracteres de entrada. O termo em inglês abreviado para expressões regulares é regex.

Podemos dizer que regex permite definir uma forma de identificar padrões em cadeias de caracteres  e que podemos usá-la para validações de dados.

O matemático americano Stephen Cole Kleene, desenvolveu os estudos que a princípio chamava de álgebra de conjuntos regulares e hoje conhecemos como as regex.

Um exemplo de seu uso é na validação do formato do campo e-mail:

 /^[a-z0-9.]+@[a-z0-9]+\.[a-z]+\.([a-z]+)?$/i;.


Entretando, para verificar se uma string contém apenas letras e não números, segue o algorítimo abaixo. 


// Se for letra

 if (Regex.IsMatch(txtRegistroCadastro.Text, ".*?[a-zA-Z].*?"))

 {                     

 }

 // Se não for letra

 else

 {

 }


Mais informações:

https://learn.microsoft.com/pt-br/dotnet/api/system.text.regularexpressions.regex.ismatch?view=net-8.0

quinta-feira, 18 de janeiro de 2024

SQL - Evitar salvar alterações que exijam recriação de tabela

1. Abra o SQL Server Management Studio.

2. No menu Ferramentas, clique em Opções.

3. No painel de navegação da janela Opções, clique em Designers.

4. Marque ou desmarque a caixa de seleção evitar salvar alterações que exijam recriação de tabela e clique em OK.



quinta-feira, 21 de dezembro de 2023

DROP TABLE IF EXISTS - Incorrect syntax near the keyword 'IF'.

Se estiver retornado o erro Incorrect syntax near the keyword 'IF', e o comando estiver semelhante a este DROP TABLE IF EXISTS #tmpExtatisticaExame;


Isto, acontece porque este comando somente funciona com versões do SQL SERVER a partir de 2016.


Para compatibilidade com versões anteriores  do SQL-Server, use isto:

IF OBJECT_ID(N'tempdb..#tmpExtatisticaExame', N'U') IS NOT NULL   

DROP TABLE #tmpExtatisticaExame;  

GO  


Exemplo completo:


CREATE TABLE #temptable (col1 INT);  

GO  

INSERT INTO #temptable  

VALUES (10);  

GO  

SELECT * FROM #temptable;  

GO  

IF OBJECT_ID(N'tempdb..#temptable', N'U') IS NOT NULL   

DROP TABLE #temptable;  

GO  

--Test the drop.  

SELECT * FROM #temptable; 

O exemplo anterior cria uma tabela temporária, testa sua existência, a descarta e testa novamente sua existência. Este exemplo não usa a sintaxe IF EXISTS, que está disponível a partir do SQL Server 2016 (13.x).




quarta-feira, 20 de dezembro de 2023

Unable to cast object of type 'System.Data.DataRowView' to type 'System.IConvertible'

 No meu caso, solucionei este problema realizando uma simples alteração


mova a primeira linha para a última:


Antes

comboBox.DataSource = dt; // this line
comboBox.DisplayMember = "nome";
comboBox.ValueMember = "id";

Depois

comboBox.DisplayMember = "nome";
comboBox.ValueMember = "id";
comboBox.DataSource = dt;