2015-01-22 3 views
1

저는 MS SQL 2008 데이터베이스에 연결하는 작은 C# 프로그램을 만들고 있습니다. 필자는 simmilar를 사용하여 새 데이터를 데이터베이스에 삽입하는 동안 다음과 같은 기능을 수행합니다. 업데이트 할 때 데이터베이스에 변경 사항이 없습니다. 내가 놓친 게 있니? SQL ExecuteNonQuery가 C#에서 데이터베이스를 업데이트하지 않습니다

public bool UpdateItem(int invID, int serialNum, string catA, string catB, string itemName, int quantity, 
          string supplierName, float cost, float price, string comments) 
    { 
     _cmd.CommandText = "UPDATE inventory SET [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected] WHERE [email protected];"; 
     _cmd.Parameters.Clear(); 
     _cmd.Parameters.AddWithValue("@serialNum",serialNum); 
     _cmd.Parameters.AddWithValue("@catID", getCatID(catA, catB)); 
     _cmd.Parameters.AddWithValue("@itemName",itemName); 
     _cmd.Parameters.AddWithValue("@quantity",quantity); 
     _cmd.Parameters.AddWithValue("@supplierId",GetSupplierIdByName(supplierName)); 
     _cmd.Parameters.AddWithValue("@cost",cost); 
     _cmd.Parameters.AddWithValue("@price", price); 
     _cmd.Parameters.AddWithValue("@comments", comments); 
     _cmd.Parameters.AddWithValue("@invID", invID); 
     _con.Open(); 
     _cmd.ExecuteNonQuery(); 
     _con.Close(); 
     return true; 
    } 

는 데이터베이스 테이블 stucture에게 있습니다

table inventory (
invID int IDENTITY(1,1) primary key, 
serialNum int not null, 
catID int not null, 
itemName nvarchar(20) not null, 
quantity int not null, 
supplierId int not null, 
cost real not null, 
price real not null, 
comments nvarchar (50), 
limbo BIT, 
foreign key (supplierId) 
references suppliers, 
foreign key (catID) 
references category) 

INSERT

public bool AddNewItem(int serialNum, int catID, string itemName, int quantity, 
          int supplierId, float cost, float price, string comments) 
    { 
     _cmd.CommandText = 
      "INSERT INTO inventory (serialNum,catID ,itemName ,quantity ,supplierId ,cost ,price ,comments ,limbo) VALUES " + 
            "(@serialNum,@catID ,@itemName ,@quantity ,@supplierId ,@cost ,@price ,@comments ,@limbo);"; 
     _cmd.Parameters.Clear(); 
     _cmd.Parameters.AddWithValue("@serialNum", serialNum); 
     _cmd.Parameters.AddWithValue("@catID", catID); 
     _cmd.Parameters.AddWithValue("@itemName", itemName); 
     _cmd.Parameters.AddWithValue("@quantity", quantity); 
     _cmd.Parameters.AddWithValue("@supplierId", supplierId); 
     _cmd.Parameters.AddWithValue("@cost", cost); 
     _cmd.Parameters.AddWithValue("@price", price); 
     _cmd.Parameters.AddWithValue("@comments", comments); 
     _cmd.Parameters.AddWithValue("@limbo", 0); 
     _con.Open(); 
     _cmd.ExecuteNonQuery(); 
     _con.Close(); 
     return true; 
    } 
+0

당신이 자동 증가 모든 값으로 인비 드 추가 ... 당신이 어떤 에러가 발생합니까 ??? –

+0

@ POHH 오류가 없습니다. 업데이트 만 없습니다. "자동 증가"란 무엇을 의미합니까 – Iakovl

+0

당신은 긍정적 인'invID'가 있습니까? 그냥 물어 봐야 ... 만약 그렇지 않으면, UPDATE 행복하게 0 레코드를 불평하지 않고 업데이 트됩니다. 당신이 모든 일을 올바르게 처리 한 것처럼 보이는 데요. –

답변

-1
public bool AddNewItem(int serialNum, int catID, string itemName, int quantity, 
          int supplierId, float cost, float price, string comments) 
    { 
     _cmd.CommandText = 
      "INSERT INTO inventory (serialNum,catID ,itemName ,quantity ,supplierId ,cost ,price ,comments ,limbo) VALUES " + 
            "(@serialNum,@catID ,@itemName ,@quantity ,@supplierId ,@cost ,@price ,@comments ,@limbo);"; 
     _cmd.Parameters.Clear(); 
     _cmd.Parameters.AddWithValue("@serialNum", serialNum); 
     _cmd.Parameters.AddWithValue("@catID", catID); 
     _cmd.Parameters.AddWithValue("@itemName", itemName); 
     _cmd.Parameters.AddWithValue("@quantity", quantity); 
     _cmd.Parameters.AddWithValue("@supplierId", supplierId); 
     _cmd.Parameters.AddWithValue("@cost", cost); 
     _cmd.Parameters.AddWithValue("@price", price); 
     _cmd.Parameters.AddWithValue("@comments", comments); 
     _cmd.Parameters.AddWithValue("@limbo", 0); 
     _con.Open(); 
     _cmd.Connection = _con; /* Set Connection for the command*/ 
     _cmd.ExecuteNonQuery(); 
     _con.Close(); 
     return true; 
    }