좋은 날에 데이터베이스에서 데이터를 가져 오기, 내가 클래스콤보 상자와 그 값의 C#을
classid | class
1 JSS 1
2 JSS 2
3 JSS 3
4 SSS 1
5 SSS 2
6 SSS 3
내 콤보 상자에서 내 데이터베이스에서 테이블을 가지고, 내가 클래스 열을 가져 및 클래스에 값을 설정 폼이로드, 그는 JSS이 떠나 콤보 상자에 JSS (1)을 표시 할 때 ID,하지만 지금은 - SSS를 3
이 당신은 루프 FO이없는 내 코드
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Solutions\Desktop\My Work\ExamProject\Project DataBase File For Exam\EExamDB.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
bool classHaveBeenAdded = false;
void ClassCombo()
try
{
con = new SqlConnection(Properties.Settings.Default.MyConnection);
cmd = new SqlCommand("SELECT * FROM Classes", con);
cmd.Connection.Open();
SqlDataReader readClass = cmd.ExecuteReader();
ArrayList ClassList = new ArrayList();
if (readClass.Read())
{
ClassList.Add(new AddValue(readClass.GetString(1), readClass.GetInt32(0)));
}
readClass.Close();
cmd.Connection.Close();
this.comboBoxClassID.DataSource = ClassList;
this.comboBoxClassID.DisplayMember = "Display";
this.comboBoxClassID.ValueMember = "Value";
classHaveBeenAdded = true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
public class AddValue
{
public string m_Display;
public int m_Value;
public AddValue(string Display, int Value)
{
m_Display = Display;
m_Value = Value;
}
public string Display
{
get { return m_Display; }
}
public int Value
{
get { return m_Value; }
}
}
당신은 당신의 콤보 상자에서 단 하나의 값을 얻고있다 ??? – yash
국경을 지키지 마십시오. 해결했습니다. 나는 대신에 사용했습니다. –
코드 검토 비트 : [using using] (http://www.hanselman.com/blog/WhyTheUsingStatementIsBetterThanASharpStickInTheEyeAndASqlConnectionRefactoringExample.aspx); 그렇게하면 try/catch를 덤프 할 수 있습니다. 'm_Display'와'm_Value'는 private이어야합니다. 매개 변수는 Camelcase 여야합니다 :'AddValue (string display, int value)'. ArrayList를 사용하는 이유는 무엇입니까? 'List'? –
BCdotWEB