2016-02-13 135 views
-1

我有一个窗体调用类(DbPOS)从SQL中提取特定数据,然后它将保存来自DbPOS的数据,然后将其传递给产品对象构造函数类),然后到Windows窗体以Windows窗体形式显示数据。 (这是我CA的要求,我不能简单地只是“SELECT * FROM TABLE”在Windows窗体本身)不能隐式地将类型'字符串'转换为'namespace.class'

所以我有一个问题,在DbPOS, 它有这个错误,即

无法隐式转换类型 '字符串' 到 'namespace.class',其中 namespace.Class是我的产品类别(对象的构造函数)

DbPOS(部分):

DataTable table = new DataTable(); 
         DataRow row; 
         conn.Open(); 
         da.Fill(table); 
         int nProducts = table.Rows.Count; 
         products = new product[nProducts]; 
         for (int i = 0; i < nProducts; i++) 
         { 
          row = table.Rows[i]; 
          pdname = row["name"].ToString(); 
          product p = new product(pdname); 
          p.PDname = pdname; 
          products[i] = pdname; 
         //products[i]=pdname; pdname above has the error 
         } 

产品类:

class product 
{ 
    public string pdname; 

    public product() 
    { 
     pdname = "unknown"; 
    } 
    public product(string pdname) 
    { 
     this.pdname = pdname; 
    } 

    public string PDname 
    { 
     get { return this.pdname; } 
     set { this.pdname = value; } 
    } 

} 
+0

为什么不使用'产品[Ⅰ] = P;'? –

+2

'products [i]'是'product'类数组的索引 - 你试图给这个元素分配一个字符串,因此错误。您只能将'product'的实例分配给该数组中的元素。 – Tim

+0

杰西,我试过了,它从字面上返回字符串'namespace.product'到我的Windows窗体 – LegendDemonSlayer

回答

0

尝试这种情况:

DataTable table = new DataTable(); 
DataRow row; 
conn.Open(); 
da.Fill(table); 
int nProducts = table.Rows.Count; 
products = new product[nProducts]; 
for (int i = 0; i < nProducts; i++) 
{ 
    row = table.Rows[i]; 
    pdname = row["name"].ToString(); 
    product p = new product(pdname); 
    p.PDname = pdname; 
    products[i] = p; 
} 
相关问题