informaster Posted June 15, 2013 at 04:17 PM Report #513119 Posted June 15, 2013 at 04:17 PM Boas Tarde Estimados amigos. Preciso de alguma ajuda. Tenho este codigo e preciso de voltar á combobox da selecção que faltava sem dar erro de sair do programa private void cbox_ler_dbtabelas_Click(object sender, EventArgs e) { var datasource = cbox_ler_dbfile.Text; sql_con = new SQLiteConnection("Data Source=" + datasource + ";Version=3;"); //VAI BUSCAR O CAMINHO DO FICHEIRO //DA BASE DE DADOS EXEMPLO: DB2013.DB3 QUE ESTA NA CBOX_LER_DBFILE.TEXT //if se a combobox da db file nao estiver selectiona if (string.IsNullOrEmpty(cbox_ler_dbfile.Text)) { MessageBox.Show("Não escolheu base de dados"); //AQUI GOSTAVA DE QUE ELE VOLTA-SE A SELECIONAR A COMBOBOX DA ESCOLHA DA BASE DE DADOS // OU ENTÃO QUE APARECE-SE A ESCOLHA ESTILO POPUP SE O NÃO FIZER A APLICAÇÃO CRASHA //PORQUE O SQLITE NÃO PERMITI CRIAR TABELAS SEM QUE SELECIONEMOS O FICHEIRO } else { MessageBox.Show("A base de dados é:" + cbox_ler_dbfile.Text); } sql_con.Open(); sql_con.Close(); } Teem alguma ideia rápida e fácil sem complicar. Nuno Revez 2013 Nesta parte do codigo deve haver uma maneira de ele voltar para cima e não continuar a executar: //if se a combobox da db file nao estiver selectiona if (string.IsNullOrEmpty(cbox_ler_dbfile.Text)) { MessageBox.Show("Não escolheu base de dados"); } Desculpem mas eu ando a aprender c#. Abraço Nuno Revez @informaster
nelsonr Posted June 15, 2013 at 05:43 PM Report #513149 Posted June 15, 2013 at 05:43 PM Podes adicionar um return, para sair da função. //if se a combobox da db file nao estiver selectiona if (string.IsNullOrEmpty(cbox_ler_dbfile.Text)) { MessageBox.Show("Não escolheu base de dados"); return; }
informaster Posted June 15, 2013 at 06:53 PM Author Report #513162 Posted June 15, 2013 at 06:53 PM As situações que pensamos mais complicadamente são as mais simples. Obrigado 🙂 muito obrigado mesmo. Diga-me uma coisa: Qual a melhor forma de eu indo construido os meus codigos. E por exemplo: em uma parte da programação quero chamar por exemplo um codigo que era por exemplo umas queries de sql pre programas. ou então um codigo que é comum em todo o programa. Qual o procedimento melhor e mais simple para chamarmos aquele bocado de codigo????? 🙂 Posso dar como exemplo o codigo desta FORM para fazer LOGINS e Tem funções de Administração Tecnica com Base de Dados SQLite. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SQLite; namespace helpdesk { public partial class frm_login_tecnicos : Form { public SQLiteConnection sql_con; public SQLiteCommand sql_cmd; public SQLiteDataAdapter DB; public DataSet DS = new DataSet(); public DataTable DT = new DataTable(); public frm_login_tecnicos() { InitializeComponent(); } private void frm_login_tecnicos_Load(object sender, EventArgs e) { //verifica se existe o directorio helpdesp\db System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@"c:\helpdesk\db\"); if (!di.Exists) { di.Create(); } //verifica se existe o file db2013.db2 System.IO.FileInfo fi = new System.IO.FileInfo(@"c:\helpdesk\db\db2013.db3"); if (!fi.Exists) { fi.Create().Dispose(); } //preenche a combobox com a base de predefinida db2013.db3 List<string> lines = new List<string>(); lines.Add("c:\\helpdesk\\db\\"); txtbox_caminho.Lines = lines.ToArray(); //faz leitura dos ficheiros *.db3 que estao no directorio string[] filePaths = System.IO.Directory.GetFiles(@txtbox_caminho.Text, "*.db3"); foreach (string file in filePaths) { //adiciona ao combo os ficheiros name cbox_ledb.Items.Add(file); cbox_ledb.SelectedIndex = 0; } } private void bt_refresh_Click(object sender, EventArgs e) { //faz um clean á combo box dos ficheiros cbox_ledb.Items.Clear(); cbox_ledb.Text = ""; //faz leitura dos ficheiros *.db3 que estao no directorio string[] filePaths = System.IO.Directory.GetFiles(@txtbox_caminho.Text, "*.db3"); foreach (string file in filePaths) { //adiciona ao combo os ficheiros name cbox_ledb.Items.Add(file); cbox_ledb.SelectedIndex = 0; } } private void bt_criadb_Click(object sender, EventArgs e) { var dir = new System.IO.DirectoryInfo (@"C:\helpdesk\db\"); var db = new System.IO.FileInfo(System.IO.Path.Combine(dir.FullName,txtbox_criadb.Text+".db3")); string newdb = ""; if (!db.Exists) // you may not want to overwrite existing files { using (System.IO.Stream stream = db.OpenWrite()) using (System.IO.StreamWriter writer = new System.IO.StreamWriter(stream)) { writer.Write(newdb); } txtbox_criadb.Text = ""; cbox_ledb.Items.Clear(); cbox_ledb.Text = ""; cbox_ledb.SelectedIndex.Equals(0); } } private void cbox_ledb_Click(object sender, EventArgs e) { //faz um clean á combo box dos ficheiros cbox_ledb.Items.Clear(); //faz leitura dos ficheiros *.db3 que estao no directorio string[] filePaths = System.IO.Directory.GetFiles(@"c:\helpdesk\db\", "*.db3"); foreach (string file in filePaths) { //adiciona ao combo os ficheiros name cbox_ledb.Items.Add(file); } } private void bt_cria_campo_Click(object sender, EventArgs e) { //campos deve ser: NAME,TYPE is INTEGER,CHAR,VARCHAR,NUMERIC,TEXT //CHAR/VARCHAR/TEXT pode ter (valor) // depois temos o null ou not null / primary key / unique } private void cbox_ler_dbfile_Click(object sender, EventArgs e) { //faz um clean á combo box dos ficheiros cbox_ler_dbfile.Items.Clear(); //faz leitura dos ficheiros *.db3 que estao no directorio string[] filePaths = System.IO.Directory.GetFiles(@"c:\helpdesk\db\", "*.db3"); foreach (string file in filePaths) { //adiciona ao combo os ficheiros name cbox_ler_dbfile.Items.Add(file); } } private void cbox_ler_dbtabelas_Click(object sender, EventArgs e) { //QUERIES //CREATE TABLE TEMPORARY string createtabletmp = "create table temporary (nome varchar(20), valor int)"; string deletetabletmp = "delete table temporary"; //ACABOU QUERIES var datasource = cbox_ler_dbfile.Text; sql_con = new SQLiteConnection("Data Source=" + datasource + ";Version=3;"); //if se a combobox da db file nao estiver selectiona if (string.IsNullOrEmpty(cbox_ler_dbfile.Text)) { MessageBox.Show("Não escolheu base de dados"); //tem que voltar ao cimo PROBLEMA return; } else { sql_con.Close(); } sql_con.Open(); string Nome = this.cbox_ler_dbtabelas.GetItemText(this.cbox_ler_dbtabelas.SelectedItem); SQLiteCommand createtable = new SQLiteCommand(createtabletmp, sql_con); SQLiteCommand deletetable = new SQLiteCommand(deletetabletmp, sql_con); createtable.Parameters.AddWithValue("@Nome", Nome); deletetable.Parameters.Clear(); sql_con.Close(); } } } Fica aqui os prints do que estou a fazer. https://www.dropbox.com/sh/dd6mfdw9gl0mumi/souc8cbAqc Obrigado Nuno Revez @informaster
nelsonr Posted June 15, 2013 at 07:53 PM Report #513176 Posted June 15, 2013 at 07:53 PM Podes criar uma class para procedimentos que usas várias vezes. Depois quando precisas de usar, crias um novo objecto dessa class. Ou então, se fizer mais sentido, podes criar uma class global com conteúdo estático (static). Quando precisares de usar chamas directamente sem precisar de instancias. Mas não percas muito tempo com isso. O que interessa é pores mãos à obra e avançares. Depois com o tempo e mais conhecimentos vais melhorando a organização do teu codigo.
informaster Posted June 15, 2013 at 11:41 PM Author Report #513214 Posted June 15, 2013 at 11:41 PM Mas tem algum exemplo para eu adaptar essa sabedoria. Nuno Revez @informaster
informaster Posted June 16, 2013 at 02:29 PM Author Report #513247 Posted June 16, 2013 at 02:29 PM Mas tem algum exemplo para eu adaptar essa sabedoria. Nuno Revez @informaster
bioshock Posted June 17, 2013 at 10:37 PM Report #513498 Posted June 17, 2013 at 10:37 PM E por exemplo: em uma parte da programação quero chamar por exemplo um codigo que era por exemplo umas queries de sql pre programas. ou então um codigo que é comum em todo o programa. http://stuffpinho.com/c-simplifying-database-queries/
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now