我有Windows窗体和SQL Server上名为RecordStore
的数据库。我有一张CD表(称为[CD-table]
),我试图从中提取数据并以这种形式显示。
我想让表单具有显示CD专辑标题(combobox
)的"CDname"
,但是我希望能够从"CDID"
属性获取CD ID#(Combobox.SelectedValue
)-我将转换为int。
目前,我不确定如何将这两个数据都放入一个对象中,除非我将它变成了一个对象,但是它只是在ProjectName.CD
中显示combobox
。我想访问CDID,因为我有一个DataGridView
,我只想填充CD数据,将其设置为DataTable,然后将该DataTable
设置为DataGridView's
DataSource。
获取CD数据并返回CD对象列表的方法。
private string myconnectionString = @"/*connection string*/";
public List<CD> GetCDList()
{
List<CD> CDList = new List<CD>();
SqlConnection myConnection;
SqlCommand myCmd;
SqlDataReader myReader;
myConnection = new SqlConnection(myconnectionString);
myCmd = new SqlCommand("SELECT CDID, CDname FROM [CD-table]", myConnection);
try
{
myConnection.Open();
myReader = myCmd.ExecuteReader();
while (myReader.Read())
{
CD newCD = new CD((int)myReader["CDID"]);
newCD.name = myReader["CDname"].ToString().Trim();
CDList.Add(newCD);
}
myReader.Close();
myConnection.Close();
}
finally
{
myConnection.Close();
}
return CDList;
}
CD对象(非常基本):
public class CD
{
public string name;
private int ID;
public CD(int _ID)
{
ID = _ID;
}
}
以及在Form加载方法上填充
Combobox
的代码:List<CD> myList = myDataAccess.GetCDList();
AlbumCombobox.DataSource = myList;
最佳答案
您只需要设置ValueMember和DisplayMember属性:
List<CD> myList = myDataAccess.GetCDList();
AlbumCombobox.DataSource = myList;
AlbumCombobox.DisplayMember = "Name";
AlbumCombobox.ValueMember = "ID";
CD类应定义如下:
public class CD
{
public string Name {get; set; }
public int ID {get; private set;}
public CD(int _ID)
{
ID = _ID;
}
}
关于c# - 用数据库中的数据填充组合框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30067911/