本帖最后由 redsmoke007 于 2011-10-11 22:13:16 编辑

解决方案 »

  1.   

    另外,你的SupplierID,xxID字段类型是字符类型?要是不是,要去掉单引号
      

  2.   

    按照你说的改了。不行哎。
    参数顺序也改了:如下:
        public void UpdateProduct(int ProductID,string ProductName,int SupplierID,int CategoryID,string QuantityPerUnit,decimal UnitPrice,Int16 UnitsInStock,Int16 UnitsOnOrder,Int16 RecorderLevel,bool  Discontinued)
        {
            SqlConnection conn = new SqlConnection(_connectionString);
            string sql = "UPDATE Products SET ProductName='{1}',SupplierID={2},CategoryID={3},QuantityPerUnit='{4}',UnitPrice='{5}',UnitsInStock={6},UnitsOnOrder={7},RecorderLevel={8},Discontinued={9} WHERE ProductID='{0}'";
            sql = string.Format(sql, ProductID ,ProductName, SupplierID, CategoryID, QuantityPerUnit, UnitPrice, UnitsInStock, UnitsOnOrder, RecorderLevel, Discontinued);
            SqlCommand comm=new SqlCommand(sql,conn);
            conn.Open();
            comm.ExecuteNonQuery();
            conn.Close();
        }
      

  3.   


    惭愧。终于找到原因了。正如你所说的。我把数据库中字段的名字在代码中写错了。ReorderLevel字段被我写成RecorderLevel。非常的感谢你!