Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


C# ComboBox DataSource: Ändra?

Postades av 2005-10-29 17:36:56 - Ted Ekeroth, i forum c# (c-sharp), Tråden har 2 Kommentarer och lästs av 548 personer

Hej,
jag har en ComboBox som jag initerar enligt nedan. Det ska finnas ett bättre sätt att göra det (utan for-satser) men jag fick det aldrig att fungera.

Mitt problem är nu att min ComboBox innehåller ett antal värden som är hämtade ur en databas och sparade som Serial-objekt, som sedan läggs in i en ArrayList som sedan tilldelas som DataSource för min ComboBox (se klasserna nedan).

Jag har en TextBox där jag skriver in en söksträng, och för varje tecken jag trycker ner görs en sökninge i databasen (MySQL) och sedan uppdateras ComboBoxen (enligt nedanstående kod). Problemet är att ComboBox:en på sätt och vis hänger sig.
Den blir helt grå, men går fortfarnade att använda (om man klickar på pilen i ComboBox:en). Jag vet inte riktigt varför. Kan någon assistera?


ComboBox-initiering (görs vid Form_Load):
<code>
comboBox1.Items.Clear();
ArrayList tempList = new ArrayList();
dbConnection conn = new dbConnection();
string[] fields = new string[2];
fields[0] = "id";
fields[1] = "projectName";
string[,] result = conn.query("SELECT id, comment FROM SICSerials", fields);
for (int i = 0; i<result.GetLength(0); i++)
{
tempList.Add(new Serial(Convert.ToInt32(result[i, 0]), result[i, 1]));
}
comboBox1.DataSource = tempList;
comboBox1.DisplayMember = "serialComment";
comboBox1.ValueMember = "serialID";
</code>

Klassen Serial:
<code>
namespace SAC
{


public class Serial
{
private int id;
private string comment;

public Serial(int pId, string comment)
{

id = pId;
this.comment = comment;
}

public int serialID
{
get{return id;}
}
public string serialComment
{
get{return comment;}
}
}
}
</code>

Här är koden för själva uppdateringen, dvs när man skriver i TextBox:en som sedan uppdaterar ComboBoxen med värdena:

<code>
private void updateComboBox()
{
comboBox1.DataSource = null; // sätts för att vi ska kunna editera i listan så att säga
comboBox1.Items.Clear();

ArrayList tempList = new ArrayList();
dbConnection conn = new dbConnection();
string[] fields = new string[2];
fields[0] = "id";
fields[1] = "projectName";
string[,] result = conn.query("SELECT id, comment FROM SICSerials WHERE comment LIKE '%"+textBox3.Text+"%'", fields);

for (int i = 0; i<result.GetLength(0); i++)
{
tempList.Add(new Serial(Convert.ToInt32(result[i, 0]), result[i, 1]));
}
comboBox1.DataSource = tempList;
comboBox1.DisplayMember = "serialComment";
comboBox1.ValueMember = "serialID";
tempList = null;
conn = null;
}
</code>

Tacksam för hjälp!


Svara

Sv: C# ComboBox DataSource: Ändra?

Postades av 2005-11-03 11:03:37 - Pelle Johansson

static string GetConnectionString() 
{ 
 if (InStr(HttpContext.Current.Request.Url.ToString, "localhost") > 0) { 
   GetConnectionString = ConfigurationSettings.AppSettings("ConnectionStringLocal"); 
 } else { 
   GetConnectionString = ConfigurationSettings.AppSettings("ConnectionString"); 
 } 
} 

static void FillListBox(DropDownList objName, string index, string Querystring, string firstItemText) 
{ 
 SqlClient.SqlDataReader rst = ReturnDataReader(Querystring); 
 objName.Items.Clear(); 
 objName.Items.Add(new ListItem(firstItemText, 0)); 
 while (rst.Read) { 
   objName.Items.Add(new ListItem(rst(1), rst(0))); 
 } 
 try { 
   if (index > 0 & objName.Items.Count > 1) { 
     objName.Items.FindByValue(index).Selected = true; 
   } 
 } catch (Exception ex) { 
   objName.SelectedIndex = 0; 
 } finally { 
   rst.Close(); 
 } 
 rst.Close(); 
 rst = null; 
} 

static DataSet ReturnDataset(string query) 
{ 
 SqlConnection conn = new SqlConnection(GetConnectionString); 
 SqlDataAdapter adapter = new SqlDataAdapter(); 
 DataSet dataset = new DataSet(); 
 try { 
   adapter.SelectCommand = new SqlCommand(query, conn); 
   adapter.Fill(dataset); 
 } catch (SystemException ex) { 
   throw new ApplicationException("SQL: Kan inte köra frågan:" + Err.Description + query); 
 } 
 return dataset; 
} 

public static SqlDataReader ReturnDataReader(string sqlquery) 
{ 
 SqlConnection myConnection = new SqlConnection(GetConnectionString); 
 SqlCommand myCommand = new SqlCommand(sqlquery, myConnection); 
 myCommand.CommandType = CommandType.Text; 
 try { 
   myConnection.Open(); 
   SqlDataReader result = myCommand.ExecuteReader(CommandBehavior.CloseConnection); 
   return result; 
 } catch (DataException ex) { 
   throw new SystemException("Fel vid anrop av sql-fråga: " + sqlquery + "-" + Err.Description); 
 } 
 myCommand = null; 
 myConnection = null; 
} 

static void ExecuteQuery(string sqlquery) 
{ 
 string connectionstring = GetConnectionString(); 
 SqlConnection Con = new SqlConnection(connectionstring); 
 SqlCommand cmd; 
 Con.Open(); 
 cmd = new SqlCommand(sqlquery, Con); 
 try { 
   cmd.ExecuteNonQuery(); 
 } catch (Exception ex) { 
   throw new SystemException("Fel vid anrop av sql-fråga: " + sqlquery + "-" + Err.Description); 
 } 
 Con.Close(); 
 cmd = null; 
 Con = null; 
}


Svara

Sv:C# ComboBox DataSource: Ändra?

Postades av 2005-11-11 19:31:25 - Ted Ekeroth

Stort tack!
Ska ta en titt på den koden snarast!


Svara

Nyligen

  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino
  • 04:14 Vad finns det för kratomalternativ
  • 14:16 Indian online casino
  • 14:15 Indian online casino
  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 864
27 962
271 767
592
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies