1
我需要幫助PLZ,我只是想以一個簡單的組合框綁定到從SQL數據庫,其中包含此數據表:數據綁定到一個組合框使用代碼後面
EmployeesTbl:
-------------
EmpID EmpName JobID HireDate Deleted
1 Tom 1 12/4/2005 false
2 steve 1 5/5/2005 false
3 Maria 2 2/8/2010 false
<Window x:Class="TestGlassButton.Window4"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window4" Height="300" Width="300">
<Grid>
<ComboBox Height="23" HorizontalAlignment="Left" Margin="54,213,0,0"
Name="cmbCapsNme" VerticalAlignment="Top" Width="132"
ItemsSource="{Binding}"
DisplayMemberPath="EmpArbName"
SelectedValuePath="EmpID"/>
</Grid>
</Window>
namespace TestGlassButton
{
public partial class Window4 : Window
{
public DataSet SelAllCaps()
{
SqlConnection SqlCon = new SqlConnection("Data Source=.;Initial Catalog=Rest;User ID=m*201m;Password=12345");
// captains names & ID
SqlCommand SqlCmdAllCaps = new SqlCommand();
SqlCmdAllCaps.Connection = SqlCon;
SqlCmdAllCaps.CommandType = CommandType.Text;
SqlCmdAllCaps.CommandText = "select EmpID ,EmpArbName from dbo.EmployeesTbl where JobID = 3 order by EmpArbName";
SqlCon.Open();
SqlDataAdapter dapAllCaps = new SqlDataAdapter();
dapAllCaps.SelectCommand = SqlCmdAllCaps;
DataSet dsAllEmpsInfo = new DataSet();
dapAllCaps.Fill(dsAllEmpsInfo, "EmployeesTbl");
SqlCon.Close();
return dsAllEmpsInfo;
}
private void BindCaps()
{
DataSet ds = SelAllCaps();
List<CapsClass> capList = new List<CapsClass>();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
capList.Add(new CapsClass(Convert.ToInt32(ds.Tables[0].Rows[i]["EmpID"]),
ds.Tables[0].Rows[i]["EmpArbName"].ToString()));
}
ds = null;
cmbCapsNme.ItemsSource = capList;
cmbCapsNme.DisplayMemberPath = "EmpArbName";
cmbCapsNme.SelectedValuePath = "EmpID";
cmbCapsNme.SelectedIndex = -1;
}
public Window4()
{
InitializeComponent();
BindCaps();
}
}
class CapsClass
{
Int32 _capID=-1;
string _capNme;
public CapsClass(Int32 CapID, String CapNme)
{
this._capID = CapID;
this._capNme = CapNme;
}
public Int32 CapID
{
get { return _capID; }
set { _capID = value; }
}
public string CapNme
{
get { return _capNme; }
set { _capNme = value; }
}
}
}
但是當我執行我的項目時,數據沒有出現在我的組合框中,它只顯示no。的行。 我的代碼有沒有問題&,有什麼想法嗎?
非常感謝史蒂夫,我改變DisplayMemberPath =「EmpArbName」和SelectedValuePath =「EmpID」,現在它工作 – 2012-04-28 14:44:33