2016-02-13 76 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; 
} 
相關問題