我在数据库中有这两个表。
tblProductSize(ID,SIZE_ID,PRODUCT_ID,COST_PRICE,SALE_PRICE)
tblSize(SIZE_ID,SIZE)
执行此查询时在查询构建器中
SELECT tblSize.SIZE_ID AS Expr1, tblSize.SIZE FROM tblProductSize INNER JOIN tblSize
ON tblProductSize.SIZE_ID = tblSize.SIZE_ID WHERE(tblProductSize.PRODUCT_ID = @product )
它显示了确切的值
SIZE_ID SIZE
1 Small
2 Medium
3 Large
当我使用此代码在C#中运行此查询时
public DataTable ReadCatWithProductID(int id)
{
DataTable dt = new DataTable();
try
{
conn.Open();//
SqlCommand cmd = new SqlCommand("SELECT tblSize.SIZE_ID AS Expr1, tblSize.SIZE FROM tblProductSize INNER JOIN tblSize ON tblProductSize.SIZE_ID = tblSize.SIZE_ID WHERE(tblProductSize.PRODUCT_ID = " + id + ")", conn);
SqlDataReader dr = cmd.ExecuteReader();
dt.Load(dr);
}
catch (Exception)
{
throw;
}
finally
{
conn.Close();
} return dt;
并在像这样的组合框中填充值
cmb.Items.Clear();
dlSize dlObj = new dlSize();
DataTable dt = new DataTable();
dt = dlObj.ReadCatWithProductID(1);
cmb.DisplayMember = "SIZE";
cmb.ValueMember = "Expr1";
cmb.DataSource = dt;
它显示了这样的结果
我做错了什么请指导我。
答案 0 :(得分:1)
试试这个
conn.Open();//
SqlCommand cmd = new SqlCommand("SELECT Distinct tblSize.SIZE_ID, tblSize.SIZE FROM tblProductSize INNER JOIN tblSize ON tblProductSize.SIZE_ID = tblSize.SIZE_ID WHERE(tblProductSize.PRODUCT_ID = " + id + ")", conn);
SqlDataReader dr = cmd.ExecuteReader();
dt.Load(dr);