bracara Posted December 22, 2016 at 05:36 PM Report Share #601464 Posted December 22, 2016 at 05:36 PM (edited) Boas. Sou bastante noob nestas andanças e estava a fazer uns teste em C# e Visual Studio e deparei-me com um problema ao carregar os dados do mySql para uma combobox. Se Carregar normalmente, como já vi em vários locais tudo corre bem, mas precisava de ter uma primeira opção com o item - Novo -. Aqui começaram os problemas. Se crio primeiro esse item e depois mando carregar com os dados da datatable o item desaparece. Tentei iterar sobre as linhas da data table mas apenas aparecia a informação sobre o campo onde estavam armazenados os dados e não os dados em si. Tive que iterar novamente sobre cada elemento em cada linha e escrever apenas o que precisava (estava na posição 1 do array). Está a funcionar correctamente mas parece-me que deve haver uma maneira mais compacta de resolver o problema. Deixo aqui o código para alguém com mais experiência me possa indicar uma solução mais refinada e correcta. Desde já muito obrigado. ConexaoMySQL.Ligar(); string inserir = "SELECT * FROM cidade "; ConexaoMySQL.comandos(inserir); MySqlDataReader dr = ConexaoMySQL.comando.ExecuteReader(); DataTable dt = new DataTable(); dt.Load(dr); cmbAtletaCidade.Items.Insert(0, "- Novo -"); foreach (DataRow dado in dt.Rows) { item = dado.ItemArray; cmbAtletaCidade.Items.Add(item[1]); } ConexaoMySQL.Desligar(); Edited December 22, 2016 at 05:38 PM by bracara Link to comment Share on other sites More sharing options...
N3lson Posted December 31, 2016 at 09:11 AM Report Share #601622 Posted December 31, 2016 at 09:11 AM (edited) http://www.aspsnippets.com/Articles/Add-Default-Item-Initial-Value-to-DataBound-DropDownList-populated-from-Database-in-ASPNet-using-C-and-VBNet.aspx Edited December 31, 2016 at 09:28 AM by N3lson You can't do it, kid. But don't worry, my boy. You're not the only one. No one else can do it. Link to comment Share on other sites More sharing options...
_Rest_ Posted January 11, 2017 at 05:58 PM Report Share #601953 Posted January 11, 2017 at 05:58 PM Tens 2 formas de fazer isso. A mais facil é na tua querry adicionares esse novo item Exemplo: SELECT 'Novo' UNION SELECT Nome FROM Cidades e assim já tens no DataSet ou DataTable a lista com esse valor. Em alternativa adicionas à tabela uma row e depois passas a tabela para a combo. Exemplo DataRow dr = ds.Tables[0].NewRow(); dr[0] = 0; dr[1] = "Novo"; ds.Tables[0].Rows.InsertAt(dr, 0); cmbCidades.DataSource = ds.Tables[0]; cmbCidades.ValueMember = "ID"; cmbCidades.DisplayMember = "Descricao"; Tens que adaptar ao teu caso, aí nesse é só no caso se tiveres a combo a guardar 2 valores, o ID e o nome da cidade Link to comment Share on other sites More sharing options...
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